Name: avrohugger-maven-plugin
Owner: SalesforceIQ
Description: Maven plugin for generating Scala case classes and ADTs from Apache Avro schemas, datafiles, and protocols
Created: 2017-10-24 17:45:05.0
Updated: 2017-10-24 17:45:07.0
Pushed: 2017-10-24 23:31:31.0
Size: 89
Language: Java
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Maven plugin for generating Scala case classes and ADTs from Apache Avro schemas, datafiles, and protocols.
Please be aware that the artifactId changed from avrohugger-maven-plugin_2.11 to avrohugger-maven-plugin.
There is no reason to cross-compile Maven plugins, see http://maven.apache.org/guides/mini/guide-maven-classloading.html#Plugin_Classloaders.
The plugin currently supports one goal:
gin>
<groupId>at.makubi.maven.plugin</groupId>
<artifactId>avrohugger-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate-scala-sources</goal>
</goals>
</execution>
</executions>
ugin>
This plugin can be used in conjunction with the scala-maven-plugin to add the generated Scala sources to your Scala build.
gins>
<plugin>
<groupId>at.makubi.maven.plugin</groupId>
<artifactId>avrohugger-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate-scala-sources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<executions>
<execution>
<id>add-generated-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sourceDir>${project.build.directory}/generated-sources/avro</sourceDir>
</configuration>
</execution>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
...
</plugin>
ugins>
You can override the following variables in the plugin configuration:
To override the sourceDirectory and outputDirectory, use
gins>
<plugin>
<groupId>at.makubi.maven.plugin</groupId>
<artifactId>avrohugger-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate-scala-sources</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectory>src/main/resources/avro</sourceDirectory>
<outputDirectory>target/generated-sources</outputDirectory>
</configuration>
</plugin>
ugins>
To override the sourceDirectory, outputDirectory, recurse over sourceDirectory, and restrict generated class fields to be compatible with Scala 2.10 use
gins>
<plugin>
<groupId>at.makubi.maven.plugin</groupId>
<artifactId>avrohugger-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate-scala-sources</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectory>src/main/resources/avro</sourceDirectory>
<outputDirectory>target/generated-sources</outputDirectory>
<recursive>true</recursive>
<limitedNumberOfFieldsInCaseClasses>true</limitedNumberOfFieldsInCaseClasses>>
</configuration>
</plugin>
ugins>
To override the namespaceMapping of Avro protocols under the com.example.packagename
namespace to com.example.packagenamechanged
gins>
<plugin>
<groupId>at.makubi.maven.plugin</groupId>
<artifactId>avrohugger-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate-scala-sources</goal>
</goals>
</execution>
</executions>
<configuration>
<namespaceMapping>
<mapping>
<from>com.example.packagename</from>
<to>com.example.packagenamechanged</to>
</mapping>
</namespaceMapping>
</configuration>
</plugin>
ugins>
This plugin heavily relies on Avrohugger to generate Scala code.
The Avrohugger Maven Plugin is released under version 2.0 of the Apache License.