Class GenerateMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.fusesource.hawtjni.maven.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 Details

    • project

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

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

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

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

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

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

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

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

      @Parameter(defaultValue="UTF-8") private 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 List<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 String windowsBuildTool
      The build tool to use on Windows systems. Set to 'msbuild', 'vcbuild', or 'detect' or 'none'
    • windowsProjectName

      @Parameter private 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 String windowsToolsVersion
      The tools version used in the header of your vcxproj (not applicable to vs2008).
    • windowsTargetPlatformVersion

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

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

      private File targetSrcDir
    • cli

      private CLI cli
  • Constructor Details

    • GenerateMojo

      public GenerateMojo()
  • Method Details

    • 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 ArrayList<String> getClasspath() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • copyTemplateResource

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

      private void copyTemplateResource(String file, 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 IOException
      Throws:
      IOException