Class ProtocCompileCustomMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

    @Mojo(name="compile-custom",
          defaultPhase=GENERATE_SOURCES,
          requiresDependencyResolution=COMPILE,
          threadSafe=true)
    public final class ProtocCompileCustomMojo
    extends AbstractProtocCompileMojo
    This mojo executes the protoc compiler with the specified plugin executable to generate main sources from protocol buffer definitions. It also searches dependency artifacts for .proto files and includes them in the proto_path so that they can be referenced. Finally, it adds the .proto files to the project as resources so that they are included in the final artifact.
    Since:
    0.4.1
    • Field Detail

      • pluginId

        @Parameter(required=true,
                   property="protocPluginId")
        private java.lang.String pluginId
        A unique id that identifies the plugin to protoc. Cannot be one of the built-in protoc plugins:
        • java
        • javanano
        • js
        • csharp
        • cpp
        • python
        • descriptor-set
      • outputBaseDirectory

        @Parameter(required=true,
                   readonly=true,
                   defaultValue="${project.build.directory}/generated-sources/protobuf")
        private java.io.File outputBaseDirectory
        This is the base directory for the generated code. If an explicit outputDirectory parameter is not specified, an output directory named after pluginId will be created inside this base directory.
      • outputDirectory

        @Parameter(required=false,
                   property="protocPluginOutputDirectory")
        private java.io.File outputDirectory
        This is the directory where the generated code will be placed. If this parameter is unspecified, then the default location is constructed as follows:
        ${project.build.directory}/generated-sources/protobuf/<pluginId>
      • pluginExecutable

        @Parameter(required=false,
                   property="protocPluginExecutable")
        private java.lang.String pluginExecutable
        An optional path to plugin executable. If unspecified, alternative options must be used (e.g. toolchains).
      • pluginParameter

        @Parameter(required=false,
                   property="protocPluginParameter")
        private java.lang.String pluginParameter
        An optional parameter to be passed to the plugin. Cannot contain colon (:) symbols.
      • pluginToolchain

        @Parameter(required=false,
                   property="protocPluginToolchain")
        private java.lang.String pluginToolchain
        A name of an optional custom toolchain that can be used to locate the plugin executable. The toolchain must be registered as a build extension and initialised properly.
      • pluginTool

        @Parameter(required=false,
                   property="protocPluginTool")
        private java.lang.String pluginTool
        If pluginToolchain is specified, this parameter specifies the tool in the toolchain, which is to be resolved as plugin executable.
      • pluginArtifact

        @Parameter(required=false,
                   property="protocPluginArtifact")
        private java.lang.String pluginArtifact
        Plugin artifact specification, in groupId:artifactId:version[:type[:classifier]] format. When this parameter is set, the specified artifact will be resolved as a plugin executable.
        Since:
        0.4.1
    • Constructor Detail

      • ProtocCompileCustomMojo

        public ProtocCompileCustomMojo()
    • Method Detail

      • getOutputDirectory

        protected java.io.File getOutputDirectory()
        Description copied from class: AbstractProtocMojo
        Returns the output directory for generated sources. Depends on build phase so must be defined in concrete implementation.
        Specified by:
        getOutputDirectory in class AbstractProtocMojo
        Returns:
        output directory for generated sources.