Skip to content
This repository has been archived by the owner on Nov 5, 2020. It is now read-only.

phunt/avro-maven-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maven 2 Plugin for processing Avro files

Author: Patrick Hunt (follow me on twitter)

Summary

This is a Maven 2 plugin for processing Avro protocol, schema, and genavro files.

Contributors

What’s Apache Avro?

From the official site: “Avro is a data serialization system”

Avro provides:

  • Rich data structures.
  • A compact, fast, binary data format.
  • A container file, to store persistent data.
  • Remote procedure call (RPC).
  • Simple integration with dynamic languages. Code generation is not required to read or write data files nor to use or implement RPC protocols. Code generation as an optional optimization, only worth implementing for statically typed languages.

License

This project is licensed under the Apache License Version 2.0

Usage

Type “mvn install” to install the plugin into your local maven repository.

To use the plugin you’ll need something like the following in your Avro project pom.xml file. The first plugin will compile Avro *.avpr, *.avsc, and *.genavro files, while the second plugin will run Paranamer (necessary for Avro to introspect the generated rpc code):

See avro-rpc-quickstart for example use.


      <plugin>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>com.thoughtworks.paranamer</groupId>
        <artifactId>paranamer-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>run</id>  <!-- id is optional -->
            <configuration>
              <sourceDirectory>${project.build.directory}/generated-sources/avro</sourceDirectory>
              <outputDirectory>${project.build.directory}/classes</outputDirectory>
            </configuration>        
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

About

Maven 2 Plugin for processing Apache Avro files. Avro is a subproject of Apache Hadoop.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages