Updating onos-maven-plugin to use localRepository from Maven
rather than explicit path

Also, updating root pom.xml to point to the version and
temporarily build the plugin

Change-Id: I1a6cdaf3d384dff77cd9b4566a8c46707b789308
diff --git a/pom.xml b/pom.xml
index d56333d..0349386 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,6 +39,7 @@
     <description>Open Network Operating System root project</description>
 
     <modules>
+        <module>tools/package/maven-plugin</module>
         <module>utils</module>
         <module>core</module>
         <module>web</module>
@@ -578,7 +579,7 @@
                 <plugin>
                     <groupId>org.onosproject</groupId>
                     <artifactId>onos-maven-plugin</artifactId>
-                    <version>1.3</version>
+                    <version>1.4-SNAPSHOT</version>
                     <executions>
                         <execution>
                             <id>cfg</id>
diff --git a/tools/package/maven-plugin/src/main/java/org/onosproject/maven/OnosAppMojo.java b/tools/package/maven-plugin/src/main/java/org/onosproject/maven/OnosAppMojo.java
index 9e26266..79de51f 100644
--- a/tools/package/maven-plugin/src/main/java/org/onosproject/maven/OnosAppMojo.java
+++ b/tools/package/maven-plugin/src/main/java/org/onosproject/maven/OnosAppMojo.java
@@ -18,6 +18,7 @@
 import com.google.common.io.ByteStreams;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.XMLConfiguration;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Component;
@@ -57,7 +58,6 @@
     private static final String FEATURES_XML = "features.xml";
 
     private static final String MVN_URL = "mvn:";
-    private static final String M2_REPOSITORY = ".m2/repository";
     private static final String M2_PREFIX = "m2";
 
     private static final String SNAPSHOT = "-SNAPSHOT";
@@ -108,17 +108,20 @@
     @Parameter(defaultValue = "${project.description}")
     protected String projectDescription;
 
+    @Parameter(defaultValue = "${localRepository}")
+    protected ArtifactRepository localRepository;
+
     /**
      * Maven project
      */
-    @Component
-    private MavenProject project;
+    @Parameter(defaultValue = "${project}")
+    protected MavenProject project;
 
     /**
      * Maven project helper.
      */
     @Component
-    private MavenProjectHelper projectHelper;
+    protected MavenProjectHelper projectHelper;
 
 
     private File m2Directory;
@@ -135,7 +138,7 @@
             return;
         }
 
-        m2Directory = new File(System.getProperty("user.home"), M2_REPOSITORY);
+        m2Directory = new File(localRepository.getBasedir());
         stageDirectory = new File(dstDirectory, PACKAGE_DIR);
         featureVersion = projectVersion.replace(SNAPSHOT, "");
         projectPath = M2_PREFIX + "/" + artifactDir(projectGroupId, projectArtifactId, projectVersion);
@@ -147,11 +150,14 @@
             getLog().info("Building ONOS application package for " + name + " (v" + version + ")");
             artifacts.forEach(a -> getLog().debug("Including artifact: " + a));
 
-            stageDirectory.mkdirs();
-            processAppXml(appFile);
-            processFeaturesXml(featuresFile);
-            processArtifacts();
-            generateAppPackage();
+            if (stageDirectory.exists() || stageDirectory.mkdirs()) {
+                processAppXml(appFile);
+                processFeaturesXml(featuresFile);
+                processArtifacts();
+                generateAppPackage();
+            } else {
+                throw new MojoExecutionException("Unable to create directory: " + stageDirectory);
+            }
         }
     }