Class NativeCompileMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.codehaus.mojo.natives.plugin.AbstractNativeMojo
org.codehaus.mojo.natives.plugin.NativeCompileMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

@Mojo(name="compile", defaultPhase=COMPILE) public class NativeCompileMojo extends AbstractNativeMojo
Compile source files into native object files
  • Field Details

    • compilerProvider

      @Parameter(defaultValue="generic", required=true) private String compilerProvider
      Compiler Provider Type
      Since:
      1.0-alpha-2
    • objectFileExtension

      @Parameter private String objectFileExtension
      Use this field to override object file extension. The default extensions are .obj and .o on Windows and Unix respectively
      Since:
      1.0-alpha-2
    • compilerExecutable

      @Parameter private String compilerExecutable
      Use this field to override provider specific compiler executable
      Since:
      1.0-alpha-2
    • compilerStartOptions

      @Parameter private List<String> compilerStartOptions
      Compiler options
      Since:
      1.0-alpha-2
    • compilerMiddleOptions

      @Parameter private List<String> compilerMiddleOptions
      Compiler options
      Since:
      1.0-alpha-2
    • compilerEndOptions

      @Parameter private List<String> compilerEndOptions
      Compiler options
      Since:
      1.0-alpha-2
    • javahOS

      @Parameter private String javahOS
      Javah OS name. ${jdkIncludePath} and ${jdkIncludePath}/${javaOS} are added to system include path when this field is set
      Since:
      1.0-alpha-2
    • jdkIncludePath

      @Parameter(defaultValue="${java.home}/../include") private File jdkIncludePath
      JDK native include directory
      Since:
      1.0-alpha-2
    • sources

      @Parameter protected NativeSources[] sources
      Array of NativeSources containing include directories and source files.
      Since:
      1.0-alpha-2
    • compilerOutputDirectory

      @Parameter(defaultValue="${project.build.directory}/objs", required=true) protected File compilerOutputDirectory
      Compiler output files ( .o, .obj, etc) location
      Since:
      1.0-alpha-4
    • numberOfConcurrentCompilation

      @Parameter(defaultValue="1") protected int numberOfConcurrentCompilation
      Number of parallel compilation threads
      Since:
      1.0-alpha-4
    • manager

      @Component private CompilerManager manager
    • config

      private CompilerConfiguration config
      For unittest only
  • Constructor Details

    • NativeCompileMojo

      public NativeCompileMojo()
  • Method Details

    • execute

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

      private void addJavaHIncludePaths()
    • addAdditionalIncludePath

      private void addAdditionalIncludePath()
      Pickup additional source paths that previous phases added to source root Note: we intentionally ignore the first item of source root ( ie ${project.build.directory}/classes since this plugin never use it.
    • createProviderConfiguration

      protected CompilerConfiguration createProviderConfiguration() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • getCompilerConfiguration

      protected CompilerConfiguration getCompilerConfiguration()
      Internal only for test harness purpose
      Returns: