How to convert an ANT-based NetBeans Module to a Maven-based NetBeans Module?
The following list was created while converting a simple plugin with less than 20 classes, so the migration steps of large projects might vary. But you should get the basic idea.
-
create a new maven based NBM using the "New Project"-wizard (to reuse a working configuration)
-
copy the folder src and pom.xml to the old project
-
in pom.xml
-
define a groupId
-
set the name from OpenIDE-Module-Name entry in Bundle.properties
-
set the artifactid from OpenIDE-Module entry in MANIFEST.MF
-
set the version from OpenIDE-Module-Specification-Version entry in MANIFEST.MF
-
remove the line with OpenIDE-Module-Specification-Version entry from MANIFEST.MF
-
remove the line with OpenIDE-Module entry from MANIFEST.MF
-
remove nbproject/genfiles.properties
-
remove nbproject/platform.properties
-
remove nbproject/build-impl.xml
-
remove build.xml
-
move manifest.mf to folder src/main/nbm
-
move your sources (*.java) to src/main/java (or src/test/java) (GIT is very useful here, the commit history isn’t lost)
-
move your resources (not *.java) to src/main/resources (or src/test/resources) (especially Bundle.properties)
-
add dependencies (the most annoying part)
-
foreach dependency entry (code-name-base) in nbproject/project.xml add a dependency via the "Add dependency" dialog OR add a dependency manually to pom.xml
For example use
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-projectapi</artifactId>
<version>RELEASE73</version>
</dependency>
for
<dependency>
<code-name-base>org.netbeans.modules.projectapi</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<release-version>1</release-version>
<specification-version>1.46.1</specification-version>
</run-dependency>
</dependency>
(!) Note that the dots in the dependency name have to replaced by a dashes
-
add test dependenciesFor example use
<dependency> <groupId>org.netbeans.api</groupId> <artifactId>org-netbeans-libs-junit4</artifactId> <version>RELEASE73</version> <scope>test</scope> </dependency>
for
<test-dependencies>
<test-type>
<name>unit</name>
<test-dependency>
<code-name-base>org.netbeans.libs.junit4</code-name-base>
<compile-dependency/>
</test-dependency>
</test-type>
</test-dependencies>
There is still more to do. Like to configure export packages, signing, homepage and so one. Most of these configuration settings defined in the original project.properties have a counterpart in the plugin configuration of the nbm-maven-plugin. See the detailed goal documentation at http://mojo.codehaus.org/nbm-maven/nbm-maven-plugin/nbm-mojo.html
Copied from http://benkiew.wordpress.com/2013/10/21/how-convert-an-ant-based-netbeans-module-to-a-maven-based-netbeans-module/. Tested with NB7.4