You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by en...@apache.org on 2021/01/22 00:20:41 UTC

[sling-slingfeature-maven-plugin] branch master updated: SLING-10069 The generated features target dir is created in the wrong place (#67)

This is an automated email from the ASF dual-hosted git repository.

enorman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new c07c13a  SLING-10069 The generated features target dir is created in the wrong place (#67)
c07c13a is described below

commit c07c13af614d5043bacd24a8c55ca8891cb60460
Author: Eric Norman <en...@apache.org>
AuthorDate: Thu Jan 21 16:20:34 2021 -0800

    SLING-10069 The generated features target dir is created in the wrong place (#67)
---
 .../sling/feature/maven/mojos/AbstractFeatureMojo.java  | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/AbstractFeatureMojo.java b/src/main/java/org/apache/sling/feature/maven/mojos/AbstractFeatureMojo.java
index e0e7aa4..e135b0e 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/AbstractFeatureMojo.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/AbstractFeatureMojo.java
@@ -21,6 +21,8 @@ import java.io.IOException;
 import java.io.Reader;
 import java.io.StringReader;
 import java.net.URL;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -241,12 +243,21 @@ public abstract class AbstractFeatureMojo extends AbstractMojo {
     private void handleGeneratedFeatures() throws MojoExecutionException {
         final File dir;
         if (this.generatedFeatures == null) {
-            final File targetDir = new File(this.project.getBasedir(), this.project.getBuild().getDirectory());
+            Path targetPath = null;
+            File basedir = this.project.getBasedir();
+            if (basedir == null) {
+                // no basedir? use the build directory instead.
+                targetPath = Paths.get(this.project.getBuild().getDirectory());
+            } else {
+                // resolve build directory relative to the basedir path
+                targetPath = basedir.toPath().resolve(this.project.getBuild().getDirectory());
+            }
+            final File targetDir = targetPath == null ? null : targetPath.toFile();
             final File genDir = new File(targetDir, "generated-features");
             if (genDir.exists()) {
                 dir = genDir;
             } else {
-                if(genDir.mkdirs()) {
+                if (genDir.mkdirs()) {
                     dir = genDir;
                 } else {
                     dir = null;
@@ -257,7 +268,7 @@ public abstract class AbstractFeatureMojo extends AbstractMojo {
         }
         if (dir != null) {
             if (!dir.exists()) {
-                if(!dir.mkdirs()) {
+                if (!dir.mkdirs()) {
                     throw new MojoExecutionException("Directory does not exists: " + dir);
                 }
             }