Class GenerateMojo

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

    @Mojo(name="generate",
          defaultPhase=PROCESS_CLASSES)
    public class GenerateMojo
    extends org.apache.maven.plugin.AbstractMojo
    This goal generates the native source code and a autoconf/msbuild based build system needed to build a JNI library for any HawtJNI annotated classes in your maven project.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<java.lang.String> autogenArgs
      Extra arguments you want to pass to the autogen.sh command.
      private boolean callbacks
      Set this value to false to disable the callback support in HawtJNI.
      private java.io.File classesDirectory
      The directory where the java classes files are located.
      private CLI cli  
      private java.lang.String copyright
      The copyright header template that will be added to the generated source files.
      private java.io.File customPackageDirectory
      The list of additional files to be included in the package will be placed.
      private java.lang.String encoding
      The text encoding of the files.
      private boolean forceAutogen
      Should we force executing the autogen.sh file.
      private java.io.File generatedNativeSourceDirectory
      The directory where the generated native source files are located.
      private java.lang.String name
      The base name of the library, used to determine generated file names.
      private java.io.File nativeSourceDirectory
      The directory where the native source files are located.
      private java.io.File packageDirectory
      The directory where the generated build package is located..
      private java.util.List<java.lang.String> packages
      Restrict looking for JNI classes to the specified package.
      protected org.apache.maven.project.MavenProject project
      The maven project.
      private boolean skipAutogen
      Should we skip executing the autogen.sh file.
      private java.io.File targetSrcDir  
      private boolean verbose
      Should we display all the native build output?
      private java.lang.String windowsBuildTool
      The build tool to use on Windows systems.
      private boolean windowsCustomProps
      Set this value to true to include the import of a custom properties file in your vcxproj (not applicable to vs2008).
      private java.lang.String windowsPlatformToolset
      The platform toolset version used in your vcxproj (not applicable to vs2008).
      private java.lang.String windowsProjectName
      The name of the msbuild/vcbuild project to use.
      private java.lang.String windowsTargetPlatformVersion
      The target platform version used in your vcxproj (not applicable to vs2008).
      private java.lang.String windowsToolsVersion
      The tools version used in the header of your vcxproj (not applicable to vs2008).
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Constructor Summary

      Constructors 
      Constructor Description
      GenerateMojo()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void copyNativeSourceFiles()  
      private void copyTemplateResource​(java.lang.String file, boolean filter)  
      private void copyTemplateResource​(java.lang.String file, java.lang.String output, boolean filter)  
      void execute()  
      private org.codehaus.plexus.util.FileUtils.FilterWrapper[] filters​(boolean filter)  
      private void generateBuildSystem()  
      private void generateNativeSourceFiles()  
      private java.util.ArrayList<java.lang.String> getClasspath()  
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • project

        @Parameter(defaultValue="${project}",
                   readonly=true)
        protected org.apache.maven.project.MavenProject project
        The maven project.
      • nativeSourceDirectory

        @Parameter
        private java.io.File nativeSourceDirectory
        The directory where the native source files are located.
      • generatedNativeSourceDirectory

        @Parameter(defaultValue="${project.build.directory}/generated-sources/hawtjni/native-src")
        private java.io.File generatedNativeSourceDirectory
        The directory where the generated native source files are located.
      • name

        @Parameter(defaultValue="${project.artifactId}")
        private java.lang.String name
        The base name of the library, used to determine generated file names.
      • copyright

        @Parameter(defaultValue="")
        private java.lang.String copyright
        The copyright header template that will be added to the generated source files. Use the '%END_YEAR%' token to have it replaced with the current year.
      • packages

        @Parameter
        private java.util.List<java.lang.String> packages
        Restrict looking for JNI classes to the specified package.
      • classesDirectory

        @Parameter(defaultValue="${project.build.outputDirectory}")
        private java.io.File classesDirectory
        The directory where the java classes files are located.
      • packageDirectory

        @Parameter(defaultValue="${project.build.directory}/generated-sources/hawtjni/native-package")
        private java.io.File packageDirectory
        The directory where the generated build package is located..
      • customPackageDirectory

        @Parameter(defaultValue="${basedir}/src/main/native-package")
        private java.io.File customPackageDirectory
        The list of additional files to be included in the package will be placed.
      • encoding

        @Parameter(defaultValue="UTF-8")
        private java.lang.String encoding
        The text encoding of the files.
      • skipAutogen

        @Parameter(defaultValue="${skip-autogen}")
        private boolean skipAutogen
        Should we skip executing the autogen.sh file.
      • forceAutogen

        @Parameter(defaultValue="${force-autogen}")
        private boolean forceAutogen
        Should we force executing the autogen.sh file.
      • verbose

        @Parameter(defaultValue="${hawtjni-verbose}")
        private boolean verbose
        Should we display all the native build output?
      • autogenArgs

        @Parameter
        private java.util.List<java.lang.String> autogenArgs
        Extra arguments you want to pass to the autogen.sh command.
      • callbacks

        @Parameter(defaultValue="true")
        private boolean callbacks
        Set this value to false to disable the callback support in HawtJNI. Disabling callback support can substantially reduce the size of the generated native library.
      • windowsBuildTool

        @Parameter(defaultValue="detect")
        private java.lang.String windowsBuildTool
        The build tool to use on Windows systems. Set to 'msbuild', 'vcbuild', or 'detect' or 'none'
      • windowsProjectName

        @Parameter
        private java.lang.String windowsProjectName
        The name of the msbuild/vcbuild project to use. Defaults to 'vs2010' for 'msbuild' and 'vs2008' for 'vcbuild'.
      • windowsCustomProps

        @Parameter(defaultValue="false")
        private boolean windowsCustomProps
        Set this value to true to include the import of a custom properties file in your vcxproj (not applicable to vs2008). This greatly simplifies the configurability of your project.
      • windowsToolsVersion

        @Parameter(defaultValue="4.0")
        private java.lang.String windowsToolsVersion
        The tools version used in the header of your vcxproj (not applicable to vs2008).
      • windowsTargetPlatformVersion

        @Parameter
        private java.lang.String windowsTargetPlatformVersion
        The target platform version used in your vcxproj (not applicable to vs2008). Not supplied by default.
      • windowsPlatformToolset

        @Parameter
        private java.lang.String windowsPlatformToolset
        The platform toolset version used in your vcxproj (not applicable to vs2008). Not supplied by default.
      • targetSrcDir

        private java.io.File targetSrcDir
      • cli

        private CLI cli
    • Constructor Detail

      • GenerateMojo

        public GenerateMojo()
    • Method Detail

      • execute

        public void execute()
                     throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • copyNativeSourceFiles

        private void copyNativeSourceFiles()
                                    throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • generateNativeSourceFiles

        private void generateNativeSourceFiles()
                                        throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • generateBuildSystem

        private void generateBuildSystem()
                                  throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getClasspath

        private java.util.ArrayList<java.lang.String> getClasspath()
                                                            throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • copyTemplateResource

        private void copyTemplateResource​(java.lang.String file,
                                          boolean filter)
                                   throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • copyTemplateResource

        private void copyTemplateResource​(java.lang.String file,
                                          java.lang.String output,
                                          boolean filter)
                                   throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • filters

        private org.codehaus.plexus.util.FileUtils.FilterWrapper[] filters​(boolean filter)
                                                                    throws java.io.IOException
        Throws:
        java.io.IOException