Maven plugin for Avro4k

Maven plugin for Avro to Avro4k code generation

License

License

Categories

Categories

Maven Build Tools
GroupId

GroupId

com.github.thake.avro4k
ArtifactId

ArtifactId

avro4k-maven-plugin
Last Version

Last Version

0.5.0
Release Date

Release Date

Type

Type

maven-plugin
Description

Description

Maven plugin for Avro4k
Maven plugin for Avro to Avro4k code generation

Download avro4k-maven-plugin

How to add to project

<plugin>
    <groupId>com.github.thake.avro4k</groupId>
    <artifactId>avro4k-maven-plugin</artifactId>
    <version>0.5.0</version>
</plugin>

Dependencies

compile (6)

Group / Artifact Type Version
org.apache.maven : maven-compat jar 3.6.3
org.apache.maven : maven-plugin-api jar 3.6.3
org.apache.avro : avro-compiler jar 1.10.0
org.apache.maven.shared : file-management jar 3.0.0
com.github.thake.avro4k : avro4k-compiler jar 0.5.0
org.slf4j : slf4j-api jar 1.7.30

provided (1)

Group / Artifact Type Version
org.apache.maven.plugin-tools : maven-plugin-annotations jar 3.6.0

test (3)

Group / Artifact Type Version
org.apache.maven.plugin-testing : maven-plugin-testing-tools jar 3.3.0
org.apache.maven.plugin-testing : maven-plugin-testing-harness jar 3.3.0
org.slf4j : slf4j-simple jar 1.7.30

Project Modules

There are no modules declared in this project.

Avro compiler for avro4k

This is a generator for avro4k compatible kotlin source files. The generator is based on the avro java compiler.

Unsupported features:

  • Protocol generation
  • Union types other than a Union with null

Additional features:

  • Kotlin data classes may have a different name than avro records.

Compatibility:

  • < 0.5.0 Avro4k 0.41.0
  • 0.5.0 Avro4k 1.0.0 (package names have changed)

Maven plugin usage:

<build>
    <plugins>
        <plugin>
            <groupId>com.github.thake.avro4k</groupId>
            <artifactId>avro4k-maven-plugin</artifactId>
            <version>0.5.0</version>
            <configuration>
                <sourceDirectory>${avro.schema.directory}</sourceDirectory>
                <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
                <renamedClasses>
                    <renamedClass>
                        <regex>my.namespace.(\w+)Record</regex>
                        <replacement>other.namespace.$1</replacement>
                    </renamedClass>
                </renamedClasses>
            </configuration>            				        
        </plugin>
        ...
    </plugins>
</build>

Versions

Version
0.5.0
0.4.0
0.3.0
0.2.0
0.0.1