Plugin Documentation

Goals available for this plugin:

Goal Description
avro-schema:avro-compile Mojo that will compile the avro sources: *.avsc, *.avpr, *.avdl in: 1) java files. 2) avsc files.
avro-schema:avro-dependencies mojo that fetches all schema dependencies. All avro files will be made available at "dependenciesDirectory"
avro-schema:avro-package mojo that packages a schema package and avro sources and attaches them as separate artifacts.
avro-schema:avro-validate

Mojo that runs all Schema validators on this project schemas

Built in validators:

  • docValidator (schema documentation),
  • compatibility (schema compatibility),
  • namesValidator (schema named types and field name validation)

By default validation issues will fail the build. This can be disabled at validator level with:


<validatorConfigs>
 <[validatorName].failOnIssue></[validatorName].failOnIssue>
</validatorConfigs>

A particular validator can be sckipped at schema level with:

@ignoreValidators(["validatorname"])

Custom validators can be built and used. A custom validator, will need to implement the org.spf4j.maven.plugin.avro.avscp.validation.Validator interface, and will be loaded via the java Service Loader api.

System Requirements

The following specifies the minimum requirements to run this Maven plugin:

Maven 2.0
JDK 1.8
Memory No minimum requirement.
Disk Space No minimum requirement.

Usage

You should specify the version in your project's plugin configuration:

<project>
  ...
  <build>
    <!-- To define the plugin version in your parent POM -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.spf4j</groupId>
          <artifactId>maven-avro-schema-plugin</artifactId>
          <version>8.9.3-SNAPSHOT</version>
        </plugin>
        ...
      </plugins>
    </pluginManagement>
    <!-- To use the plugin goals in your POM or parent POM -->
    <plugins>
      <plugin>
        <groupId>org.spf4j</groupId>
        <artifactId>maven-avro-schema-plugin</artifactId>
        <version>8.9.3-SNAPSHOT</version>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

For more information, see "Guide to Configuring Plug-ins"