NOTE: Since the codehaus merge 3.13.2 the plugin requires JDK 1.7. |
---|
NOTE: For people using NetBeans or just want to use this plugin with the codehaus groupId see org.codehaus.mojo:nbm-maven-plugin. |
---|
Q. What is the difference? A. The only differences are the plugin groupId and the wiring.NetBeans IDE explicitly interacts with org.codehaus.mojo:nbm-maven-plugin , it is in fact hardcoded. |
You might want to check out coming changes: Here
Wiki: https://github.com/bitstrings/nbm-maven/wiki
Fork of the codehaus nbm-maven repository --> https://github.com/mojohaus/nbm-maven-plugin
This fork mainly exists to add missing features to the webstart goal of the org.codehaus.mojo:nbm-maven-plugin.
{CODEHAUS_VERSION}-{BITSTRINGS_REV_VERSION}
The code base is always the codehaus nbm maven plugin of the same version. (I am aware of the project structure weirdness)
nbm-maven-plugin home --> http://mojo.codehaus.org/nbm-maven/nbm-maven-plugin
Will be available through Maven Central.
NOTICE the groupId is org.bitstrings.maven.plugins
.
<plugin>
<groupId>org.bitstrings.maven.plugins</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<version>4.1</version>
<extensions>true</extensions>
</plugin>
nbm:webstart-app
Parameters | Type | Description |
---|---|---|
signWar | boolean |
If true the Web Archive (war) will be signed. Default: false User Property: nbm.webstart.signWar Since: 3.11 |
generateJnlpApplicationTemplate | boolean |
If true , create JNLP-INF/APPLICATION_TEMPLATE.JNLP from the jnlp. See http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/signedJNLP.html. User Property: nbm.webstart.generateJnlpApplicationTemplate Since: 3.11 |
signingThreads | integer |
The number of threads that should be used to sign the jars. If set to zero (0) it will be set to the number of processors. Default: 0 User Property: nbm.signing.threads Since: 3.11 |
signingMaximumThreads | integer |
The number of maximum threads that should be used to sign the jars. If set to zero (0) there will be no limit. Default: 0 User Property: nbm.signing.maxthreads Since: 3.11.1-4 |
signingForce | boolean |
If true , force signing of the jar file even if it doesn't seem to be out of date or already signed. Default: true User Property: nbm.signing.force Since: 3.11 |
signingTsaCert | String |
Alias in the keystore for a timestamp authority for timestamped JAR files. User Property: nbm.signing.tsacert Since: 3.11 |
signingTsaUrl | String |
URL for a timestamp authority for timestamped JAR files. User Property: nbm.signing.tsaurl Since: 3.11 |
signingRetryCount | Integer |
Number of retries before giving up if some connection problem occur while TSA signing (TSA URL). Default: 5 User Property: nbm.signing.retryCount Since: 3.11 |
signingRemoveExistingSignatures | boolean |
Remove any existing signature from the jar before signing. Default: false User Property: nbm.signing.removeExistingSignatures Since: 3.11 |
signingMaxMemory | String |
Set the maximum memory for the jar signer. Default: 96m User Property: nbm.signing.maxMemory Since: 3.11 |
webappResources | List<Resource> |
Resources that should be included in the web archive (war). Since: 3.11 |
autoManifestSecurityEntries | boolean |
Automatically populate the manifest with security attributes based on the master JNLP configuration. Should be set to true unless you explicitly use <jarsConfig> and the correct manifest entries. Default: true Since: 3.11.1 |
jarsConfigs | List<JarsConfig> |
Specific configuration for Jars. Since: 3.11.1 |
applicationName | String |
The application name which can be used as metadata. It is also used for the Application-Name manifest attribute value (if autoManifestSecurityEntries is enabled). Default: The jnlp information/title or the branding token. Since: 3.11.1-1 |
includeLocales | String |
Comma seperated locales, i.e.: ja. Special values: * for all locales and none for well, no locales.*Default: ` ** <br/>**Since: 3.14`** |
optimize | boolean |
Try to optimize the generated content for minimal loading time and size. Default: false Since: 3.14 |
verifyJnlp | boolean |
Verify generated webstartable content. Default: true Since: 3.11.1-2 |
validateJnlpDtd | boolean |
Online JNLP schema validation. Default: true Since: 3.11.1-2 |
Syntax:
Same as Maven build/resources.
<webappResources>
<webappResource>
<directory>src/main/resources</directory>
</webappResource>
</webappResources>
This is useful to add icons for example:
src/
main/
resources/
icon_128x128.png
Resources are placed relative to the root and may be referenced in the jnlp:
<jnlp spec="6.0+" codebase="${jnlp.codebase}" href="https://github.com/bitstrings/nbm-maven/blob/master/${master.jnlp.file.name}.jnlp">
<information>
<icon kind="shortcut" href="https://github.com/bitstrings/nbm-maven/blob/master/icon_128x128.png"/>
</information>
...
Structure:
<jarsConfigs>
<jarsConfig>
<manifestEntries>
<permissions/> <!-- sandbox or all-permissions (default: jnlp) -->
<codebase/> <!-- used to restrict the code base of the JAR to specific domains. You may use *. (default: *)-->
<trustedOnly/> <!-- true or false (default: true) -->
<trustedLibrary/> <!-- true or false (default: true) -->
<extraAttributes/>
<removeAttributes/>
<removeClassPath/> <!-- true or false (default: true) -->
</manifestEntries>
<removeExistingSignatures/> <!-- true or false (default: true) -->
<jarSet> <!-- not using any set will apply to all jars -->
<includes>
<include/> <!-- ant style pattern -->
...
</includes>
<excludes>
<exclude/> <!-- ant style pattern -->
...
</excludes>
</jarSet>
</jarsConfig>
</jarsConfigs>
Standard Maven includes/excludes syntax. If no <jarSet>
is defined then all jars all selected.
The source base directory is relative to the NetBeans application directory.
Parameters | Type | Description |
---|---|---|
permissions | String |
Used to verify that the permissions level requested by the RIA when it runs matches the permissions level that was set when the JAR file was created. Manifest attribute: Permissions . Values: sandbox ,all-permissions See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/no_redeploy.html Since: 3.11.1 |
codebase | String |
Used to restrict the code base of the JAR to specific domains. Manifest attribute: Codebase . See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/no_redeploy.html Since: 3.11.1 |
trustedOnly | boolean |
Used to restrict the code base of the JAR to specific domains. Manifest attribute: Trusted-Only . See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mixed_code.html Since: 3.11.1 |
trustedLibrary | boolean |
Used to restrict the code base of the JAR to specific domains. Manifest attribute: Trusted-Library . See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mixed_code.html Since: 3.11.1 |
applicationName | String |
The application name. Manifest attribute: Application-Name . Since: 3.11.1-1 |
applicationLibraryAllowableCodebase | String |
Identifies the locations where your signed RIA is expected to be found. Manifest attribute: Application-Library-Allowable-Codebase . Since: 3.11.1-1 |
callerAllowableCodebase | String |
Identify the domains from which JavaScript code can make calls to your RIA. Manifest attribute: Caller-Allowable-Codebase . Since: 3.11.1-1 |
extraAttributes | Map |
Extra manifest main attributes. Since: 3.11.1 |
Structure:
<extraAttributes>
<name1>value1</name1> <!-- attribute name/value -->
<name2>value2</name2> <!-- attribute name/value -->
...
</extraAttributes>
See http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/signedJNLP.html
The APPLICATION_TEMPLATE.JNLP is based on the JNLP. Only the codebase
and href
values are replaced by *
.
The file is placed inside the startup.jar
.
<plugin>
<groupId>org.bitstrings.maven.plugins</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>webstart-app</goal>
</goals>
<configuration>
<masterJnlpFile>src/main/webstart/${brandingToken}.jnlp</masterJnlpFile>
<masterJnlpFileName>${brandingToken}</masterJnlpFileName>
<generateJnlpApplicationTemplate>true</generateJnlpApplicationTemplate>
<additionalArguments>-J-Xms384m -J-Xmx800m -J-XX:MaxPermSize=256m -J-Djava.util.Arrays.useLegacyMergeSort=true</additionalArguments>
<keystore>${jarsigner.keystore}</keystore>
<keystorealias>${jarsigner.alias}</keystorealias>
<keystorepassword>${jarsigner.storepass}</keystorepassword>
<keystoretype>${jarsigner.storetype}</keystoretype>
<signingRemoveExistingSignatures>true</signingRemoveExistingSignatures>
<signingThreads>8</signingThreads>
<webappResources>
<webappResource>
<directory>src/main/resources</directory>
</webappResource>
</webappResources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.bitstrings.maven.plugins</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>webstart-app</goal>
</goals>
<configuration>
<masterJnlpFile>src/main/webstart/${brandingToken}.jnlp</masterJnlpFile>
<masterJnlpFileName>${brandingToken}</masterJnlpFileName>
<generateJnlpApplicationTemplate>true</generateJnlpApplicationTemplate>
<additionalArguments>-J-Xms384m -J-Xmx800m -J-XX:MaxPermSize=256m -J-Djava.util.Arrays.useLegacyMergeSort=true</additionalArguments>
<keystore>${jarsigner.keystore}</keystore>
<keystorealias>${jarsigner.alias}</keystorealias>
<keystorepassword>${jarsigner.storepass}</keystorepassword>
<keystoretype>${jarsigner.storetype}</keystoretype>
<signingRemoveExistingSignatures>true</signingRemoveExistingSignatures>
<jarsConfigs>
<jarsConfig>
<jarSet>
<includes>
<include>**/${brandingToken}/**/*commons*.jar</include>
</includes>
</jarSet>
<manifestEntries>
<permissions>sandbox</permissions>
</manifestEntries>
</jarsConfig>
<jarsConfigs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.bitstrings.maven.plugins</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>webstart-app</goal>
</goals>
<configuration>
<masterJnlpFile>src/main/webstart/${brandingToken}.jnlp</masterJnlpFile>
<masterJnlpFileName>${brandingToken}</masterJnlpFileName>
<generateJnlpApplicationTemplate>true</generateJnlpApplicationTemplate>
<keystore>${jarsigner.keystore}</keystore>
<keystorealias>${jarsigner.alias}</keystorealias>
<keystorepassword>${jarsigner.storepass}</keystorepassword>
<keystoretype>${jarsigner.storetype}</keystoretype>
<signingRemoveExistingSignatures>true</signingRemoveExistingSignatures>
<applicationName>The Application Name</applicationName>
<pack200>true</pack200>
</configuration>
</execution>
</executions>
</plugin>