Fork me on GitHub

native:javah

Full name:

org.codehaus.mojo:native-maven-plugin:1.0.0:javah

Description:

Generate JNI include files based on a set of class names

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile.
  • The goal is not marked as thread-safe and thus does not support parallel builds.
  • Binds by default to the lifecycle phase: generate-sources.

Required Parameters

Name Type Since Description
<incZipFile> File 1.0-alpha-8 Archive file to bundle all generated include files if enable by ${attach}
Default: ${project.build.directory}/${project.build.finalName}.inczip
<javahOutputDirectory> File 1.0-alpha-2 Where to place javah generated file
Default: ${project.build.directory}/native/javah
<javahProvider> String 1.0-alpha-2 Javah Provider.
Default: default
<workingDirectory> File - user directory when external tools( ie compiler/linker ) are invoked
Default: ${basedir}

Optional Parameters

Name Type Since Description
<attach> boolean - Archive all generated include files and deploy as an inczip
Default: false
<classifier> String - Classifier name when install/deploy generated includes file. See ${attach} for details
Default: javah
<dependencyIncludeDirectory> File - Directory to unpack .inczip dependency files to be included as system include path
Default: ${project.build.directory}/native/include
<envFactoryName> String - Specifies a fully qualified class name implementing the org.codehaus.mojo.natives.EnvFactory interface. The class creates a set environment variables to be used with the command line.
<javahClassNames> List<String> 1.0-alpha-4 List of class names to generate native files. Additional JNI interface will automatically discovered from project's dependencies of jar type, when javahSearchJNIFromDependencies is true
<javahIncludes> List<JavahInclude> 1.0-alpha-8 Additional javah classname and its corresponding header name. Use this option to create one class per header

<javahIncludes>
  <javahInclude>
    <className>com.some.Class</className>
    <headerName>Class.h</headerName>
  <javahInclude>
</javahIncludes>
<javahOutputFileName> String 1.0-alpha-4 if configured, this value will be combined with outputDirectory to pass into javah's -o option
<javahPath> File 1.0-alpha-2 Path to javah executable, if present, it will override the default one which bases on architecture type. See 'javahProvider' argument
<javahSearchJNIFromDependencies> boolean 1.0-alpha-4 Enable the search from project dependencies for JNI interfaces, in addition to javahClassNames
Default: false
<javahVerbose> boolean 1.0-alpha-2 Enable javah verbose mode
Default: false
<skip> boolean 1.0-M2 Set to true to skip the execution of native plugin mojos.
Default: false
User Property: native.skip
<useEnvClasspath> boolean 1.0-alpha-9 Set CLASSPATH env variable instead of using -classpath command-line argument. Use this option to allow large number of jars in classpath due to command line size limit under Windows
Default: false

Parameter Details

<attach>

Archive all generated include files and deploy as an inczip
  • Type: boolean
  • Required: No
  • Default: false

<classifier>

Classifier name when install/deploy generated includes file. See ${attach} for details
  • Type: java.lang.String
  • Required: No
  • Default: javah

<dependencyIncludeDirectory>

Directory to unpack .inczip dependency files to be included as system include path
  • Type: java.io.File
  • Required: No
  • Default: ${project.build.directory}/native/include

<envFactoryName>

Specifies a fully qualified class name implementing the org.codehaus.mojo.natives.EnvFactory interface. The class creates a set environment variables to be used with the command line.
  • Type: java.lang.String
  • Required: No

<incZipFile>

Archive file to bundle all generated include files if enable by ${attach}
  • Type: java.io.File
  • Since: 1.0-alpha-8
  • Required: Yes
  • Default: ${project.build.directory}/${project.build.finalName}.inczip

<javahClassNames>

List of class names to generate native files. Additional JNI interface will automatically discovered from project's dependencies of jar type, when javahSearchJNIFromDependencies is true
  • Type: java.util.List<java.lang.String>
  • Since: 1.0-alpha-4
  • Required: No

<javahIncludes>

Additional javah classname and its corresponding header name. Use this option to create one class per header

<javahIncludes>
  <javahInclude>
    <className>com.some.Class</className>
    <headerName>Class.h</headerName>
  <javahInclude>
</javahIncludes>
  • Type: java.util.List<org.codehaus.mojo.natives.plugin.JavahInclude>
  • Since: 1.0-alpha-8
  • Required: No

<javahOutputDirectory>

Where to place javah generated file
  • Type: java.io.File
  • Since: 1.0-alpha-2
  • Required: Yes
  • Default: ${project.build.directory}/native/javah

<javahOutputFileName>

if configured, this value will be combined with outputDirectory to pass into javah's -o option
  • Type: java.lang.String
  • Since: 1.0-alpha-4
  • Required: No

<javahPath>

Path to javah executable, if present, it will override the default one which bases on architecture type. See 'javahProvider' argument
  • Type: java.io.File
  • Since: 1.0-alpha-2
  • Required: No

<javahProvider>

Javah Provider.
  • Type: java.lang.String
  • Since: 1.0-alpha-2
  • Required: Yes
  • Default: default

<javahSearchJNIFromDependencies>

Enable the search from project dependencies for JNI interfaces, in addition to javahClassNames
  • Type: boolean
  • Since: 1.0-alpha-4
  • Required: No
  • Default: false

<javahVerbose>

Enable javah verbose mode
  • Type: boolean
  • Since: 1.0-alpha-2
  • Required: No
  • Default: false

<skip>

Set to true to skip the execution of native plugin mojos.
  • Type: boolean
  • Since: 1.0-M2
  • Required: No
  • User Property: native.skip
  • Default: false

<useEnvClasspath>

Set CLASSPATH env variable instead of using -classpath command-line argument. Use this option to allow large number of jars in classpath due to command line size limit under Windows
  • Type: boolean
  • Since: 1.0-alpha-9
  • Required: No
  • Default: false

<workingDirectory>

user directory when external tools( ie compiler/linker ) are invoked
  • Type: java.io.File
  • Required: Yes
  • Default: ${basedir}