diff --git a/README.md b/README.md
index 025f9d7..a08926e 100755
--- a/README.md
+++ b/README.md
@@ -21,4 +21,13 @@
 
 # Apache NetBeans Maven Utilities
 
+### Get In Touch
+
+[Subscribe](mailto:users-subscribe@netbeans.incubator.apache.org) or [mail](mailto:users@netbeans.incubator.apache.org) the [users@netbeans.incubator.apache.org](mailto:users@netbeans.incubator.apache.org) list - Ask questions, find answers, and also help other users.
+
+[Subscribe](mailto:dev-subscribe@netbeans.incubator.apache.org) or [mail](mailto:dev@netbeans.incubator.apache.org) the [dev@netbeans.incubator.apache.org](mailto:dev@netbeans.incubator.apache.org) list - Join developement discussions, propose new ideas and connect with contributors.
+
+### Reporting Bugs
+
+Bugs should be reported to https://issues.apache.org/jira/projects/NETBEANS/issues/ using the component **mavenutilities**
 
diff --git a/archetype/nbm-archetype/pom.xml b/archetype/nbm-archetype/pom.xml
index 20f0383..c9cb029 100644
--- a/archetype/nbm-archetype/pom.xml
+++ b/archetype/nbm-archetype/pom.xml
@@ -1,20 +1,24 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>mojo-parent</artifactId>
-        <version>38</version>
+        <groupId>org.netbeans.maven</groupId>
+        <artifactId>utilities-parent</artifactId>
+        <version>1-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.codehaus.mojo.archetypes</groupId>
+    <groupId>org.netbeans.maven.archetypes</groupId>
     <artifactId>nbm-archetype</artifactId>
     <version>1.16-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
-    <name>NetBeans Module Archetype</name>
+    <name>Apache Netbeans Maven Utilties - NetBeans Module Archetype</name>
     <description>Archetype for development of NetBeans modules in Maven.</description>
+    <issueManagement>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/projects/NETBEANS</url>
+    </issueManagement>
     <scm>
-        <connection>scm:git:https://github.com/mojohaus/nbm-archetype.git</connection>
-        <developerConnection>scm:git:ssh://git@github.com/mojohaus/nbm-archetype.git</developerConnection>
-        <url>https://github.com/mojohaus/nbm-archetype/tree/${project.scm.tag}</url>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</connection>
+        <developerConnection>scm:git:gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</developerConnection>
+        <url>https://github.com/apache/incubator-netbeans-mavenutils</url>
         <tag>master</tag>
     </scm> 
     <licenses>
diff --git a/archetype/nbm-suite-root/pom.xml b/archetype/nbm-suite-root/pom.xml
index 4c85ecc..66154f1 100644
--- a/archetype/nbm-suite-root/pom.xml
+++ b/archetype/nbm-suite-root/pom.xml
@@ -1,14 +1,16 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>mojo-parent</artifactId>
-        <version>38</version>
+        <groupId>org.netbeans.maven</groupId>
+        <artifactId>utilities-parent</artifactId>
+        <version>1-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
+    <groupId>org.netbeans.maven.archetypes</groupId>
     <artifactId>nbm-suite-root</artifactId>
     <version>1.11-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
-    <name>NetBeans Module Suite Archetype</name>
+    
+    <name>Apache Netbeans Maven Utilties - NetBeans Module Suite Archetype</name>
     <description>Root project archetype for creating multi module projects developing NetBeans IDE modules. Approximately similar in functionality to module suites in NetBeans Ant projects.</description>
     <licenses>
         <license>
@@ -17,10 +19,14 @@
             <distribution>repo</distribution>
         </license>
     </licenses>
+    <issueManagement>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/projects/NETBEANS</url>
+    </issueManagement>
     <scm>
-        <connection>scm:git:https://github.com/mojohaus/nbm-suite-root.git</connection>
-        <developerConnection>scm:git:ssh://git@github.com/mojohaus/nbm-suite-root.git</developerConnection>
-        <url>https://github.com/mojohaus/nbm-suite-root/tree/${project.scm.tag}</url>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</connection>
+        <developerConnection>scm:git:gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</developerConnection>
+        <url>https://github.com/apache/incubator-netbeans-mavenutils</url>
     </scm> 
     <build>
         <pluginManagement>
diff --git a/archetype/netbeans-platform-app-archetype/pom.xml b/archetype/netbeans-platform-app-archetype/pom.xml
index 67f7003..78074cb 100644
--- a/archetype/netbeans-platform-app-archetype/pom.xml
+++ b/archetype/netbeans-platform-app-archetype/pom.xml
@@ -1,15 +1,15 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>mojo-parent</artifactId>
-        <version>38</version>
+        <groupId>org.netbeans.maven</groupId>
+        <artifactId>utilities-parent</artifactId>
+        <version>1-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.codehaus.mojo.archetypes</groupId>
+    <groupId>org.netbeans.maven.archetypes</groupId>
     <artifactId>netbeans-platform-app-archetype</artifactId>
     <version>1.21-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
-    <name>NetBeans Platform Application Archetype</name>
+    <name>Apache Netbeans Maven Utilties - NetBeans Platform Application Archetype</name>
     <description>Archetype for sample application based on NetBeans Platform. Creates parent POM with branding and empty NBM project.</description>
     <licenses>
         <license>
@@ -18,10 +18,14 @@
             <distribution>repo</distribution>
         </license>
     </licenses>   
+    <issueManagement>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/projects/NETBEANS</url>
+    </issueManagement>
     <scm>
-        <connection>scm:git:https://github.com/mojohaus/netbeans-platform-app-archetype.git</connection>
-        <developerConnection>scm:git:ssh://git@github.com/mojohaus/netbeans-platform-app-archetype.git</developerConnection>
-        <url>https://github.com/mojohaus/netbeans-platform-app-archetype/tree/${project.scm.tag}</url>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</connection>
+        <developerConnection>scm:git:gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</developerConnection>
+        <url>https://github.com/apache/incubator-netbeans-mavenutils</url>
         <tag>master</tag>
     </scm>
     <build>
diff --git a/nb-repository-plugin/pom.xml b/nb-repository-plugin/pom.xml
index fc4ca84..b6264c0 100644
--- a/nb-repository-plugin/pom.xml
+++ b/nb-repository-plugin/pom.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>mojo-parent</artifactId>
-        <version>40</version>
+        <groupId>org.netbeans.maven</groupId>
+        <artifactId>utilities-parent</artifactId>
+        <version>1-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -11,14 +11,14 @@
     <version>1.4-SNAPSHOT</version>
     <packaging>maven-plugin</packaging>
 
-    <name>NB Repository Plugin</name>
+    <name>Apache NetBeans Maven Utilities - NB Repository Plugin</name>
     <description>Maven plugin for creating Maven Repository out of a NetBeans installation (and other sources) for consumption by the projects using nbm-maven-plugin.
     </description>
     <inceptionYear>2005</inceptionYear>
-    <url>https://github.com/mojohaus/nb-repository-plugin</url>
+    <url>http://netbeans.apache.org/mavenutilities/nb-repository-plugin</url>
     <issueManagement>
-        <system>GitHub</system>
-        <url>https://github.com/mojohaus/nb-repository-plugin/issues</url>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/browse/NETBEANS</url>
     </issueManagement>
     <prerequisites>
         <maven>3.1.1</maven>
@@ -31,10 +31,9 @@
         </license>
     </licenses>
     <scm>
-        <connection>scm:git:https://github.com/mojohaus/nb-repository-plugin.git</connection>
-        <developerConnection>scm:git:ssh://git@github.com/mojohaus/nb-repository-plugin.git</developerConnection>
-        <url>https://github.com/mojohaus/nb-repository-plugin/tree/${project.scm.tag}</url>
-        <tag>master</tag>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</connection>
+        <developerConnection>scm:git:gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</developerConnection>
+        <url>https://github.com/apache/incubator-netbeans-mavenutils</url>
     </scm>
     <developers>
         <developer>
@@ -146,7 +145,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-site-plugin</artifactId>
-                <version>3.6</version>
             </plugin>
         </plugins>
     </build>
@@ -155,7 +153,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.9</version>
                 <reportSets>
                     <reportSet>
                         <reports>
@@ -168,30 +165,21 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-changes-plugin</artifactId>
-                <version>2.12.1</version>
-                
                 <configuration>
                     <!-- configure github milestone ? -->
-                    <onlyMilestoneIssues>false</onlyMilestoneIssues>
-                    <onlyCurrentVersion>false</onlyCurrentVersion>
+                    <!--<onlyMilestoneIssues>false</onlyMilestoneIssues>
+                    <onlyCurrentVersion>false</onlyCurrentVersion>-->
+                    <skip>true</skip>
                 </configuration>
                
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>2.17</version>
-                
-                <configuration>
-                    <configLocation>config/maven_checks.xml</configLocation>
-                    <headerLocation>config/maven-header.txt</headerLocation>
-                </configuration>
-                            
+                <artifactId>maven-checkstyle-plugin</artifactId>                           
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jxr-plugin</artifactId>
-                <version>2.5</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -210,7 +198,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
-                <version>3.0.0-M1</version>
                 <configuration>
                     <quiet>true</quiet>
                     <links>
@@ -249,15 +236,13 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-pmd-plugin</artifactId>
-                <version>3.8</version>
-                <configuration>
-                    <targetJdk>1.5</targetJdk>
+               <configuration>
+                    <targetJdk>1.6</targetJdk>
                 </configuration>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-linkcheck-plugin</artifactId>
-                <version>1.2</version>
                 <configuration>
                     <excludedLinks>
                         <excludedLink>../../images/codehaus-small.png</excludedLink>
@@ -432,7 +417,7 @@
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>nb-shared</artifactId>
-            <version>1.2</version>
+            <version>1.3-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.maven.wagon</groupId>
diff --git a/nb-repository-plugin/src/main/java/org/codehaus/mojo/nbm/repository/DownloadIndexMojo.java b/nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/DownloadIndexMojo.java
similarity index 99%
rename from nb-repository-plugin/src/main/java/org/codehaus/mojo/nbm/repository/DownloadIndexMojo.java
rename to nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/DownloadIndexMojo.java
index 158abff..1845303 100644
--- a/nb-repository-plugin/src/main/java/org/codehaus/mojo/nbm/repository/DownloadIndexMojo.java
+++ b/nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/DownloadIndexMojo.java
@@ -15,7 +15,7 @@
  */
 
 
-package org.codehaus.mojo.nbm.repository;
+package org.netbeans.nbm.repository;
 
 import java.io.File;
 import java.net.URI;
diff --git a/nb-repository-plugin/src/main/java/org/codehaus/mojo/nbm/repository/PopulateRepositoryMojo.java b/nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/PopulateRepositoryMojo.java
similarity index 99%
rename from nb-repository-plugin/src/main/java/org/codehaus/mojo/nbm/repository/PopulateRepositoryMojo.java
rename to nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/PopulateRepositoryMojo.java
index d59670e..2d6a90e 100644
--- a/nb-repository-plugin/src/main/java/org/codehaus/mojo/nbm/repository/PopulateRepositoryMojo.java
+++ b/nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/PopulateRepositoryMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm.repository;
+package org.netbeans.nbm.repository;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -76,13 +76,13 @@
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.artifact.AttachedArtifact;
 import org.apache.maven.project.artifact.ProjectArtifactMetadata;
+import org.netbeans.nbm.utils.AbstractNetbeansMojo;
+import org.netbeans.nbm.utils.ExamineManifest;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Input;
 import org.apache.tools.ant.taskdefs.PathConvert;
 import org.apache.tools.ant.types.FileSet;
-import org.codehaus.mojo.nbm.utils.AbstractNetbeansMojo;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 
diff --git a/nb-repository-plugin/src/site/apt/index.apt b/nb-repository-plugin/src/site/apt/index.apt
index 575e014..ab28c76 100644
--- a/nb-repository-plugin/src/site/apt/index.apt
+++ b/nb-repository-plugin/src/site/apt/index.apt
@@ -21,7 +21,7 @@
  Milos Kleint
  <mkleint@codehaus.org>
  ------
- Oct 19 2012
+ 2012-10-19
 
 NetBeans Repository plugin
 
diff --git a/nb-repository-plugin/src/site/apt/repository.apt b/nb-repository-plugin/src/site/apt/repository.apt
index 5907ff4..758634b 100644
--- a/nb-repository-plugin/src/site/apt/repository.apt
+++ b/nb-repository-plugin/src/site/apt/repository.apt
@@ -21,7 +21,7 @@
  Milos Kleint
  <mkleint@codehaus.org>
  ------
- Oct 19, 2012
+ 2012-10-19
 
 HOWTO: Upload NetBeans release binaries to a Maven repository
 
diff --git a/nb-repository-plugin/src/test/java/org/codehaus/mojo/nbm/repository/PopulateRepositoryMojoTest.java b/nb-repository-plugin/src/test/java/org/netbeans/nbm/repository/PopulateRepositoryMojoTest.java
similarity index 97%
rename from nb-repository-plugin/src/test/java/org/codehaus/mojo/nbm/repository/PopulateRepositoryMojoTest.java
rename to nb-repository-plugin/src/test/java/org/netbeans/nbm/repository/PopulateRepositoryMojoTest.java
index c22a603..369544b 100644
--- a/nb-repository-plugin/src/test/java/org/codehaus/mojo/nbm/repository/PopulateRepositoryMojoTest.java
+++ b/nb-repository-plugin/src/test/java/org/netbeans/nbm/repository/PopulateRepositoryMojoTest.java
@@ -15,8 +15,9 @@
  *  under the License.
  */
 
-package org.codehaus.mojo.nbm.repository;
+package org.netbeans.nbm.repository;
 
+import org.netbeans.nbm.repository.PopulateRepositoryMojo;
 import java.io.File;
 import junit.framework.TestCase;
 import org.apache.maven.artifact.Artifact;
diff --git a/nbm-maven-harness/pom.xml b/nbm-maven-harness/pom.xml
index e083410..e785fc2 100644
--- a/nbm-maven-harness/pom.xml
+++ b/nbm-maven-harness/pom.xml
@@ -2,13 +2,18 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>mojo-parent</artifactId>
-        <version>40</version>
+        <groupId>org.netbeans.maven</groupId>
+        <artifactId>utilities-parent</artifactId>
+        <version>1-SNAPSHOT</version>
     </parent>
     <artifactId>nbm-maven-harness</artifactId>
-    <version>8.3-SNAPSHOT</version>
-    <name>NBM Harness for Maven</name>
+    <version>9.0-SNAPSHOT</version>
+    <name>Apache NetBeans Maven Utilities - NBM Harness for Maven</name>
+    <url>http://netbeans.apache.org/mavenutilities/nbm-maven-harness</url>
+    <issueManagement>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/browse/NETBEANS</url>
+    </issueManagement>
     <licenses>
         <license>
             <name>Apache License 2</name>
@@ -17,10 +22,9 @@
         </license>
     </licenses>
     <scm>
-        <connection>scm:git:https://github.com/mojohaus/nbm-maven-harness.git</connection>
-        <developerConnection>scm:git:ssh://git@github.com/mojohaus/nbm-maven-harness.git</developerConnection>
-        <url>https://github.com/mojohaus/nbm-maven-harness/tree/${project.scm.tag}</url>
-        <tag>master</tag>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</connection>
+        <developerConnection>scm:git:gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</developerConnection>
+        <url>https://github.com/apache/incubator-netbeans-mavenutils</url>
     </scm>
     <build>
         <plugins>
@@ -221,7 +225,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.9</version>
                 <reportSets>
                     <reportSet>
                         <reports>
diff --git a/nbm-maven-plugin/pom.xml b/nbm-maven-plugin/pom.xml
index 1a47b8a..c7ddb3e 100644
--- a/nbm-maven-plugin/pom.xml
+++ b/nbm-maven-plugin/pom.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>mojo-parent</artifactId>
-        <version>40</version>
+        <groupId>org.netbeans.maven</groupId>
+        <artifactId>utilities-parent</artifactId>
+        <version>1-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -11,14 +11,14 @@
     <version>4.2-SNAPSHOT</version>
     <packaging>maven-plugin</packaging>
 
-    <name>NBM Maven Plugin</name>
+    <name>Apache NetBeans Maven Utilities - NBM Maven Plugin</name>
     <description>Maven plugin for creating NetBeans modules. It defines a custom lifecycle called "nbm". During packaging, the module JAR is enhanced with NetBeans-specific manifest entries and, along with other required files, packed into a *.nbm file, ready for distribution. Additionally the plugin provides aggregator goals to create an update site or cluster for your module projects.
     </description>
     <inceptionYear>2005</inceptionYear>
-    <url>https://github.com/mojohaus/nbm-maven-plugin</url>
+    <url>http://netbeans.apache.org/mavenutilities/nbm-maven-plugin</url>
     <issueManagement>
-        <system>GitHub</system>
-        <url>https://github.com/mojohaus/nbm-maven-plugin/issues</url>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/browse/NETBEANS</url>
     </issueManagement>
     <prerequisites>
         <maven>3.0.5</maven>
@@ -31,10 +31,9 @@
         </license>
     </licenses>
     <scm>
-        <connection>scm:git:https://github.com/mojohaus/nbm-maven-plugin.git</connection>
-        <developerConnection>scm:git:ssh://git@github.com/mojohaus/nbm-maven-plugin.git</developerConnection>
-        <url>https://github.com/mojohaus/nbm-maven-plugin/tree/${project.scm.tag}</url>
-        <tag>master</tag>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</connection>
+        <developerConnection>scm:git:gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</developerConnection>
+        <url>https://github.com/apache/incubator-netbeans-mavenutils</url>
     </scm>
     <developers>
         <developer>
@@ -155,7 +154,6 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>animal-sniffer-maven-plugin</artifactId>
-                <version>1.16</version>
                 <executions>
                     <execution>
                         <phase>package</phase>
@@ -175,7 +173,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-site-plugin</artifactId>
-                <version>3.6</version>
                 <dependencies>
                     <dependency>
                         <groupId>org.apache.maven.shared</groupId>
@@ -196,7 +193,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.9</version>
                 <reportSets>
                     <reportSet>
                         <reports>
@@ -210,43 +206,19 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-changes-plugin</artifactId>
                 <version>2.12.1</version>
-                <reportSets>
-                    <reportSet> 
-                        <reports>
-                            <report>github-report</report>
-                        </reports> 
-                    </reportSet>
-                </reportSets>
-                <configuration>
-                    <!-- configure github milestone ? -->
-                    <onlyMilestoneIssues>false</onlyMilestoneIssues>
-                    <onlyCurrentVersion>false</onlyCurrentVersion>
-
+                 <configuration>
+                    <skip>true</skip>
                 </configuration>
    
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>2.17</version>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>checkstyle</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-                <configuration>
-                    <configLocation>config/maven_checks.xml</configLocation>
-                    <headerLocation>config/maven-header.txt</headerLocation>
-                </configuration>
-                            
+                <artifactId>maven-checkstyle-plugin</artifactId>                            
             </plugin>
                         
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
-                <version>3.0.0-M1</version>
                 <configuration>
                     <quiet>true</quiet>
                     <links>
@@ -293,7 +265,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jxr-plugin</artifactId>
-                <version>2.5</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -312,7 +283,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-pmd-plugin</artifactId>
-                <version>3.8</version>
                 <configuration>
                     <targetJdk>1.5</targetJdk>
                 </configuration>
@@ -320,7 +290,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-linkcheck-plugin</artifactId>
-                <version>1.2</version>
                 <configuration>
                     <excludedLinks>
                         <excludedLink>../../images/codehaus-small.png</excludedLink>
@@ -438,10 +407,12 @@
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-plugin-api</artifactId>
+            <version>3.0</version>
         </dependency>
         <dependency>
             <groupId>org.apache.maven.plugin-tools</groupId>
             <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.5</version>
         </dependency>
         <dependency>
             <groupId>org.apache.ant</groupId>
@@ -507,7 +478,8 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
+            <!-- use harness from NetBeans 8.2  --> 
+            <groupId>org.codehaus.mojo</groupId>
             <artifactId>nbm-maven-harness</artifactId>
             <version>8.2</version>
         </dependency>
@@ -519,7 +491,7 @@
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>nb-shared</artifactId>
-            <version>1.2</version>
+            <version>1.3-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/AbstractNbmMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/AbstractNbmMojo.java
similarity index 98%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/AbstractNbmMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/AbstractNbmMojo.java
index 3e0520b..c17e520 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/AbstractNbmMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/AbstractNbmMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import java.io.FileReader;
@@ -38,15 +38,18 @@
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
+import org.netbeans.nbm.model.Dependency;
+import org.netbeans.nbm.model.NetBeansModule;
+import org.netbeans.nbm.model.io.xpp3.NetBeansModuleXpp3Reader;
+import org.netbeans.nbm.utils.AbstractNetbeansMojo;
+import org.netbeans.nbm.utils.ExamineManifest;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-import org.codehaus.mojo.nbm.model.Dependency;
-import org.codehaus.mojo.nbm.model.NetBeansModule;
-import org.codehaus.mojo.nbm.model.io.xpp3.NetBeansModuleXpp3Reader;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
+
+
 import org.codehaus.plexus.util.IOUtil;
 
 public abstract class AbstractNbmMojo
-    extends org.codehaus.mojo.nbm.utils.AbstractNetbeansMojo
+    extends AbstractNetbeansMojo
 {
 
     static boolean matchesLibrary( Artifact artifact, List<String> libraries, ExamineManifest depExaminator,
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/AdaptNbVersion.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/AdaptNbVersion.java
similarity index 98%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/AdaptNbVersion.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/AdaptNbVersion.java
index f80ff9c..79d15e9 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/AdaptNbVersion.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/AdaptNbVersion.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/BrandingMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/BrandingMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/BrandingMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/BrandingMojo.java
index 0d06d47..ff7140d 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/BrandingMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/BrandingMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import org.apache.maven.plugin.MojoExecutionException;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/BuildInstallersMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/BuildInstallersMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/BuildInstallersMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/BuildInstallersMojo.java
index fab8fa7..26e92b9 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/BuildInstallersMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/BuildInstallersMojo.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  * under the License.
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.*;
 import java.net.JarURLConnection;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CollectLibrariesNodeVisitor.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CollectLibrariesNodeVisitor.java
similarity index 98%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CollectLibrariesNodeVisitor.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CollectLibrariesNodeVisitor.java
index b35c7a6..05642fd 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CollectLibrariesNodeVisitor.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CollectLibrariesNodeVisitor.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -27,7 +27,7 @@
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
 import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
+import org.netbeans.nbm.utils.ExamineManifest;
 
 /**
  * A dependency node visitor that collects visited nodes that are known libraries or are
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CollectModuleLibrariesNodeVisitor.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CollectModuleLibrariesNodeVisitor.java
similarity index 98%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CollectModuleLibrariesNodeVisitor.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CollectModuleLibrariesNodeVisitor.java
index 693471a..713b406 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CollectModuleLibrariesNodeVisitor.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CollectModuleLibrariesNodeVisitor.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -27,7 +27,7 @@
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
 import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
+import org.netbeans.nbm.utils.ExamineManifest;
 
 /**
  * A dependency node visitor that collects visited nodes that are known libraries or are
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateClusterAppMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateClusterAppMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateClusterAppMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateClusterAppMojo.java
index 38a9756..1c7f1ed 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateClusterAppMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateClusterAppMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import com.google.common.collect.Sets;
 import java.io.*;
@@ -57,12 +57,12 @@
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
+import org.netbeans.nbm.utils.ExamineManifest;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.filters.StringInputStream;
 import org.apache.tools.ant.taskdefs.Chmod;
 import org.apache.tools.ant.types.FileSet;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateClusterMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateClusterMojo.java
similarity index 98%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateClusterMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateClusterMojo.java
index 89e5e40..d872258 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateClusterMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateClusterMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import java.io.IOException;
@@ -28,12 +28,12 @@
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
+import org.netbeans.nbm.utils.ExamineManifest;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.filters.StringInputStream;
 import org.apache.tools.ant.taskdefs.Copy;
 import org.apache.tools.ant.types.FileSet;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.io.InputStreamFacade;
 
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateNbmMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateNbmMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateNbmMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateNbmMojo.java
index 9281be3..d36737f 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateNbmMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateNbmMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateNetBeansFileStructure.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateNetBeansFileStructure.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateNetBeansFileStructure.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateNetBeansFileStructure.java
index f6ae5a4..8b42e0e 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateNetBeansFileStructure.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateNetBeansFileStructure.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.*;
 import java.lang.reflect.Field;
@@ -44,10 +44,12 @@
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.shared.filtering.MavenFilteringException;
-import org.codehaus.mojo.nbm.model.NbmResource;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.filtering.MavenResourcesExecution;
 import org.apache.maven.shared.filtering.MavenResourcesFiltering;
+import org.netbeans.nbm.model.NbmResource;
+import org.netbeans.nbm.model.NetBeansModule;
+import org.netbeans.nbm.utils.ExamineManifest;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Copy;
@@ -58,8 +60,6 @@
 import org.apache.tools.ant.util.FileUtils;
 import org.netbeans.nbbuild.CreateModuleXML;
 import org.netbeans.nbbuild.MakeListOfNBM;
-import org.codehaus.mojo.nbm.model.NetBeansModule;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.netbeans.nbbuild.JHIndexer;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateStandaloneMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateStandaloneMojo.java
similarity index 98%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateStandaloneMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateStandaloneMojo.java
index 7e3e485..48b78c4 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateStandaloneMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateStandaloneMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  *  under the License.
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import org.apache.maven.plugin.AbstractMojo;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateUpdateSiteMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateUpdateSiteMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateUpdateSiteMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateUpdateSiteMojo.java
index 9b04f6f..e959457 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateUpdateSiteMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateUpdateSiteMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import java.util.Iterator;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateWebstartAppMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateWebstartAppMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateWebstartAppMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateWebstartAppMojo.java
index e53b832..0ad1add 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/CreateWebstartAppMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/CreateWebstartAppMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  *  under the License.
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/NetBeansManifestUpdateMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/NetBeansManifestUpdateMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/NetBeansManifestUpdateMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/NetBeansManifestUpdateMojo.java
index 87df4fb..548c9c3 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/NetBeansManifestUpdateMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/NetBeansManifestUpdateMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -48,16 +48,16 @@
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.codehaus.mojo.nbm.model.Dependency;
-import org.codehaus.mojo.nbm.model.NetBeansModule;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.dependency.analyzer.DefaultClassAnalyzer;
 import org.apache.maven.shared.dependency.analyzer.asm.ASMDependencyAnalyzer;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
+import org.netbeans.nbm.model.Dependency;
+import org.netbeans.nbm.model.NetBeansModule;
+import org.netbeans.nbm.utils.ExamineManifest;
 import org.apache.tools.ant.taskdefs.Manifest;
 import org.apache.tools.ant.taskdefs.ManifestException;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
 import org.codehaus.plexus.util.IOUtil;
 
 /**
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/RunNetBeansMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/RunNetBeansMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/RunNetBeansMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/RunNetBeansMojo.java
index f4a7187..08036dc 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/RunNetBeansMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/RunNetBeansMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import java.io.FileOutputStream;
diff --git a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/RunPlatformAppMojo.java b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/RunPlatformAppMojo.java
similarity index 99%
rename from nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/RunPlatformAppMojo.java
rename to nbm-maven-plugin/src/main/java/org/netbeans/nbm/RunPlatformAppMojo.java
index 4144a63..c70b4e4 100644
--- a/nbm-maven-plugin/src/main/java/org/codehaus/mojo/nbm/RunPlatformAppMojo.java
+++ b/nbm-maven-plugin/src/main/java/org/netbeans/nbm/RunPlatformAppMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
 import java.io.File;
 import java.util.List;
diff --git a/nbm-maven-plugin/src/main/mdo/descriptor.mdo b/nbm-maven-plugin/src/main/mdo/descriptor.mdo
index d6033be..1931551 100644
--- a/nbm-maven-plugin/src/main/mdo/descriptor.mdo
+++ b/nbm-maven-plugin/src/main/mdo/descriptor.mdo
@@ -22,7 +22,7 @@
     <defaults>
         <default>
             <key>package</key>
-            <value>org.codehaus.mojo.nbm.model</value>
+            <value>org.netbeans.nbm.model</value>
         </default>
     </defaults>
     <classes>
diff --git a/nbm-maven-plugin/src/main/resources/META-INF/plexus/components.xml b/nbm-maven-plugin/src/main/resources/META-INF/plexus/components.xml
index 4ddb600..e7355a2 100644
--- a/nbm-maven-plugin/src/main/resources/META-INF/plexus/components.xml
+++ b/nbm-maven-plugin/src/main/resources/META-INF/plexus/components.xml
@@ -73,13 +73,13 @@
         <phases>
           <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
           <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
-          <process-classes>org.codehaus.mojo:nbm-maven-plugin:manifest</process-classes>
+          <process-classes>org.netbeans.maven:nbm-maven-plugin:manifest</process-classes>
           <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
           <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
           <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
           <package>org.apache.maven.plugins:maven-jar-plugin:jar, 
-                   org.codehaus.mojo:nbm-maven-plugin:branding,
-                   org.codehaus.mojo:nbm-maven-plugin:nbm
+                   org.netbeans.maven:nbm-maven-plugin:branding,
+                   org.netbeans.maven:nbm-maven-plugin:nbm
           </package>
           <install>org.apache.maven.plugins:maven-install-plugin:install</install>
           <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
@@ -95,7 +95,7 @@
         <phases>
           <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
           <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
-          <package>org.codehaus.mojo:nbm-maven-plugin:cluster-app,org.codehaus.mojo:nbm-maven-plugin:standalone-zip</package>
+          <package>org.netbeans.maven:nbm-maven-plugin:cluster-app,org.netbeans.maven:nbm-maven-plugin:standalone-zip</package>
           <integration-test>org.apache.maven.plugins:maven-surefire-plugin:test</integration-test>
           <install>org.apache.maven.plugins:maven-install-plugin:install</install>
           <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
diff --git a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/AbstractNbmMojoTest.java b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/AbstractNbmMojoTest.java
similarity index 98%
rename from nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/AbstractNbmMojoTest.java
rename to nbm-maven-plugin/src/test/java/org/netbeans/nbm/AbstractNbmMojoTest.java
index f66bd9b..1459b67 100644
--- a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/AbstractNbmMojoTest.java
+++ b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/AbstractNbmMojoTest.java
@@ -15,8 +15,9 @@
  *  under the License.
  */
 
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
+import org.netbeans.nbm.AbstractNbmMojo;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -32,9 +33,9 @@
 import org.apache.maven.plugin.logging.SystemStreamLog;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
 import org.apache.maven.shared.dependency.graph.internal.DefaultDependencyNode;
-import org.codehaus.mojo.nbm.model.Dependency;
-import org.codehaus.mojo.nbm.model.NetBeansModule;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
+import org.netbeans.nbm.model.Dependency;
+import org.netbeans.nbm.model.NetBeansModule;
+import org.netbeans.nbm.utils.ExamineManifest;
 
 /**
  *
diff --git a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/BrandingMojoTest.java b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/BrandingMojoTest.java
similarity index 97%
rename from nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/BrandingMojoTest.java
rename to nbm-maven-plugin/src/test/java/org/netbeans/nbm/BrandingMojoTest.java
index caa97d9..3268e31 100644
--- a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/BrandingMojoTest.java
+++ b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/BrandingMojoTest.java
@@ -13,8 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
+import org.netbeans.nbm.BrandingMojo;
 import java.io.File;
 import org.junit.Test;
 import static org.junit.Assert.*;
diff --git a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/CreateClusterAppMojoTest.java b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/CreateClusterAppMojoTest.java
similarity index 96%
rename from nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/CreateClusterAppMojoTest.java
rename to nbm-maven-plugin/src/test/java/org/netbeans/nbm/CreateClusterAppMojoTest.java
index c761d25..0e95c07 100644
--- a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/CreateClusterAppMojoTest.java
+++ b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/CreateClusterAppMojoTest.java
@@ -13,8 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
+import org.netbeans.nbm.CreateClusterAppMojo;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -25,8 +26,8 @@
 import java.util.Set;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.logging.Log;
-import org.codehaus.mojo.nbm.CreateClusterAppMojo.BundleTuple;
-import org.codehaus.mojo.nbm.utils.ExamineManifest;
+import org.netbeans.nbm.utils.ExamineManifest;
+import org.netbeans.nbm.CreateClusterAppMojo.BundleTuple;
 import static org.junit.Assert.*;
 import org.junit.Test;
 
diff --git a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/CreateNetBeansFileStructureTest.java b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/CreateNetBeansFileStructureTest.java
similarity index 96%
rename from nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/CreateNetBeansFileStructureTest.java
rename to nbm-maven-plugin/src/test/java/org/netbeans/nbm/CreateNetBeansFileStructureTest.java
index 48a57d5..22d9bd5 100644
--- a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/CreateNetBeansFileStructureTest.java
+++ b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/CreateNetBeansFileStructureTest.java
@@ -13,8 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
+import org.netbeans.nbm.CreateNetBeansFileStructure;
 import java.io.File;
 import java.io.PrintWriter;
 import java.io.StringWriter;
diff --git a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/NetBeansManifestUpdateMojoTest.java b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/NetBeansManifestUpdateMojoTest.java
similarity index 97%
rename from nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/NetBeansManifestUpdateMojoTest.java
rename to nbm-maven-plugin/src/test/java/org/netbeans/nbm/NetBeansManifestUpdateMojoTest.java
index c49ca20..ecdeb6c 100644
--- a/nbm-maven-plugin/src/test/java/org/codehaus/mojo/nbm/NetBeansManifestUpdateMojoTest.java
+++ b/nbm-maven-plugin/src/test/java/org/netbeans/nbm/NetBeansManifestUpdateMojoTest.java
@@ -15,8 +15,9 @@
  *  under the License.
  */
 
-package org.codehaus.mojo.nbm;
+package org.netbeans.nbm;
 
+import org.netbeans.nbm.NetBeansManifestUpdateMojo;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
diff --git a/nbm-shared/pom.xml b/nbm-shared/pom.xml
index 680b83e..53e4875 100644
--- a/nbm-shared/pom.xml
+++ b/nbm-shared/pom.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>mojo-parent</artifactId>
-        <version>40</version>
+        <groupId>org.netbeans.maven</groupId>
+        <artifactId>utilities-parent</artifactId>
+        <version>1-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -11,14 +11,14 @@
     <version>1.3-SNAPSHOT</version>
     <packaging>jar</packaging>
 
-    <name>NBM Plugins Utilities</name>
-    <description>Maven plugin for creating Maven Repository out of a NetBeans installation (and other sources) for consumption by the projects using nbm-maven-plugin.
+    <name>Apache NetBeans Maven Utilities - NBM Plugins Utilities</name>
+    <description>Maven plugin for creating Maven Repository out of a Apache NetBeans installation (and other sources) for consumption by the projects using nbm-maven-plugin.
     </description>
     <inceptionYear>2005</inceptionYear>
-    <url>https://github.com/mojohaus/nbm-shared</url>
+    <url>http://netbeans.apache.org/mavenutilities/nb-shared</url>
     <issueManagement>
-        <system>GitHub</system>
-        <url>https://github.com/mojohaus/nbm-shared/issues</url>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/browse/NETBEANS</url>
     </issueManagement>
     <licenses>
         <license>
@@ -28,10 +28,9 @@
         </license>
     </licenses>
     <scm>
-        <connection>scm:git:https://github.com/mojohaus/nbm-shared.git</connection>
-        <developerConnection>scm:git:ssh://git@github.com/mojohaus/nbm-shared.git</developerConnection>
-        <url>https://github.com/mojohaus/nbm-shared/tree/${project.scm.tag}</url>
-        <tag>master</tag>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</connection>
+        <developerConnection>scm:git:gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</developerConnection>
+        <url>https://github.com/apache/incubator-netbeans-mavenutils</url>
     </scm>
     <developers>
         <developer>
@@ -95,7 +94,7 @@
                     <execution>
                         <phase>package</phase>
                         <goals>
-                           <goal>check</goal>
+                            <goal>check</goal>
                         </goals>
                         <configuration>
                             <signature>
@@ -110,16 +109,14 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-site-plugin</artifactId>
-                <version>3.6</version>
             </plugin>
         </plugins>
     </build>
     <reporting>
         <plugins>
-            <plugin>
+            <!--<plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.9</version>
                 <reportSets>
                     <reportSet>
                         <reports>
@@ -128,32 +125,26 @@
                             <report>project-team</report>
                             <report>scm</report>
                             <report>summary</report>
-                            <!-- <report>cim</report> -->
+                           
                         </reports>
                     </reportSet>
                 </reportSets>
-            </plugin>
+            </plugin>-->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-changes-plugin</artifactId>
-                <version>2.12.1</version>
                 <configuration>
-                   <!-- <onlyCurrentVersion>true</onlyCurrentVersion>-->
+                    <skip>true</skip>
+                    <!-- <onlyCurrentVersion>true</onlyCurrentVersion>-->
                 </configuration>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>2.9.1</version>
-                <configuration>
-                    <configLocation>config/maven_checks.xml</configLocation>
-                    <headerLocation>config/maven-header.txt</headerLocation>
-                </configuration>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
-                <version>3.0.0-M1</version>
                 <configuration>
                     <quiet>true</quiet>
                     <links>
@@ -179,7 +170,6 @@
                         <tagletArtifact>
                             <groupId>org.apache.maven.plugin-tools</groupId>
                             <artifactId>maven-plugin-tools-javadoc</artifactId>
-                            <version>2.8</version>
                         </tagletArtifact>
                         <tagletArtifact>
                             <groupId>org.codehaus.plexus</groupId>
@@ -192,20 +182,17 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jxr-plugin</artifactId>
-                <version>2.5</version>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-pmd-plugin</artifactId>
-                <version>3.8</version>
                 <configuration>
-                    <targetJdk>1.5</targetJdk>
+                    <targetJdk>1.6</targetJdk>
                 </configuration>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-linkcheck-plugin</artifactId>
-                <version>1.2</version>
                 <configuration>
                     <excludedLinks>
                         <excludedLink>../../images/codehaus-small.png</excludedLink>
diff --git a/nbm-shared/src/main/java/org/codehaus/mojo/nbm/utils/AbstractNetbeansMojo.java b/nbm-shared/src/main/java/org/netbeans/nbm/utils/AbstractNetbeansMojo.java
similarity index 98%
rename from nbm-shared/src/main/java/org/codehaus/mojo/nbm/utils/AbstractNetbeansMojo.java
rename to nbm-shared/src/main/java/org/netbeans/nbm/utils/AbstractNetbeansMojo.java
index c005bb9..db9918f 100644
--- a/nbm-shared/src/main/java/org/codehaus/mojo/nbm/utils/AbstractNetbeansMojo.java
+++ b/nbm-shared/src/main/java/org/netbeans/nbm/utils/AbstractNetbeansMojo.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm.utils;
+package org.netbeans.nbm.utils;
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.tools.ant.BuildEvent;
diff --git a/nbm-shared/src/main/java/org/codehaus/mojo/nbm/utils/ExamineManifest.java b/nbm-shared/src/main/java/org/netbeans/nbm/utils/ExamineManifest.java
similarity index 99%
rename from nbm-shared/src/main/java/org/codehaus/mojo/nbm/utils/ExamineManifest.java
rename to nbm-shared/src/main/java/org/netbeans/nbm/utils/ExamineManifest.java
index 730114d..f75d5ec 100644
--- a/nbm-shared/src/main/java/org/codehaus/mojo/nbm/utils/ExamineManifest.java
+++ b/nbm-shared/src/main/java/org/netbeans/nbm/utils/ExamineManifest.java
@@ -14,7 +14,7 @@
  *  limitations under the License.
  * =========================================================================
  */
-package org.codehaus.mojo.nbm.utils;
+package org.netbeans.nbm.utils;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/nbm-shared/src/test/java/org/codehaus/mojo/nbm/utils/ExamineManifestTest.java b/nbm-shared/src/test/java/org/netbeans/nbm/utils/ExamineManifestTest.java
similarity index 97%
rename from nbm-shared/src/test/java/org/codehaus/mojo/nbm/utils/ExamineManifestTest.java
rename to nbm-shared/src/test/java/org/netbeans/nbm/utils/ExamineManifestTest.java
index f23827d..be99990 100644
--- a/nbm-shared/src/test/java/org/codehaus/mojo/nbm/utils/ExamineManifestTest.java
+++ b/nbm-shared/src/test/java/org/netbeans/nbm/utils/ExamineManifestTest.java
@@ -15,8 +15,9 @@
  * under the License.
  */
 
-package org.codehaus.mojo.nbm.utils;
+package org.netbeans.nbm.utils;
 
+import org.netbeans.nbm.utils.ExamineManifest;
 import java.io.File;
 import java.io.PrintWriter;
 import junit.framework.TestCase;
diff --git a/parent/pom.xml b/parent/pom.xml
new file mode 100644
index 0000000..ec1533a
--- /dev/null
+++ b/parent/pom.xml
@@ -0,0 +1,128 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>21</version>
+    </parent>
+    <groupId>org.netbeans.maven</groupId>
+    <artifactId>utilities-parent</artifactId>
+    <version>1-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>Apache Netbeans Maven Utilties</name>
+    <description>Apache Netbeans Maven Utilities is a set of artefacts to build and populate Apache NetBeans artefacts using Apache Maven</description>
+    <url>http://netbeans.apache.org/mavenutilities/parent</url> 
+    <licenses>
+        <license>
+            <name>The Apache Software License, Version 2.0</name>
+            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+    <issueManagement>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/projects/NETBEANS</url>
+    </issueManagement>
+    <mailingLists>
+        <mailingList> 
+            <name>Apache Netbeans (incubating) Users List</name>
+            <subscribe>users-subscribe@netbeans.incubator.apache.org</subscribe>
+            <unsubscribe>users-unsubscribe@netbeans.incubator.apache.org</unsubscribe>
+            <post>mailto:users@netbeans.incubator.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/netbeans-users/</archive>
+        </mailingList>
+        <mailingList> 
+            <name>Apache Netbeans (incubating) Dev List</name>
+            <subscribe>dev-subscribe@netbeans.incubator.apache.org</subscribe>
+            <unsubscribe>dev-unsubscribe@netbeans.incubator.apache.org</unsubscribe>
+            <post>mailto:dev@netbeans.incubator.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/netbeans-dev/</archive>
+        </mailingList>
+        <mailingList> 
+            <name>Apache Netbeans (incubating) NetCAT List</name>
+            <subscribe>netcat-subscribe@netbeans.incubator.apache.org</subscribe>
+            <unsubscribe>netcat-unsubscribe@netbeans.incubator.apache.org</unsubscribe>
+            <post>mailto:netcat@netbeans.incubator.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/netbeans-netcat/</archive>
+        </mailingList>
+        <mailingList> 
+            <name>Apache Netbeans (incubating) Announcements List</name>
+            <subscribe>announce-subscribe@netbeans.incubator.apache.org</subscribe>
+            <unsubscribe>announce-unsubscribe@netbeans.incubator.apache.org</unsubscribe>
+            <post>mailto:announce@netbeans.incubator.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/netbeans-announce/</archive>
+        </mailingList>
+        <mailingList> 
+            <name>Apache Netbeans (incubating) Commits List</name>
+            <subscribe>commits-subscribe@netbeans.incubator.apache.org</subscribe>
+            <unsubscribe>commits-unsubscribe@netbeans.incubator.apache.org</unsubscribe>
+            <post>mailto:commits@netbeans.incubator.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/netbeans-commits/</archive>
+        </mailingList>
+        <mailingList> 
+            <name>Apache Netbeans (incubating) Notifications List</name>
+            <subscribe>notifications-subscribe@netbeans.incubator.apache.org</subscribe>
+            <unsubscribe>notifications-unsubscribe@netbeans.incubator.apache.org</unsubscribe>
+            <post>mailto:notifications@netbeans.incubator.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/netbeans-notifications/</archive>
+        </mailingList>
+    </mailingLists>
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</connection>
+        <developerConnection>scm:git:gitbox.apache.org/repos/asf/incubator-netbeans-mavenutils.git</developerConnection>
+        <url>https://github.com/apache/incubator-netbeans-mavenutils</url>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <dependency> 
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>4.12</version>
+                <scope>test</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>animal-sniffer-maven-plugin</artifactId>
+                    <version>1.17</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-changes-plugin</artifactId>
+                    <version>2.12.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-checkstyle-plugin</artifactId>
+                    <version>3.0.0</version>
+                    <configuration>
+                        <configLocation>config/maven_checks.xml</configLocation>
+                        <headerLocation>config/maven-header.txt</headerLocation>
+                    </configuration>
+                    <dependencies>
+                        <dependency>
+                            <groupId>org.apache.maven.shared</groupId>
+                            <artifactId>maven-shared-resources</artifactId>
+                            <version>2</version>
+                        </dependency>
+                    </dependencies>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-jxr-plugin</artifactId>
+                    <version>3.0.0</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-pmd-plugin</artifactId>
+                    <version>3.10.0</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-linkcheck-plugin</artifactId>
+                    <version>1.2</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+</project>
\ No newline at end of file
