Fix sources base directory in Repackage
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 14 Mar 2023 05:47:45 +0000 (06:47 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 14 Mar 2023 05:47:45 +0000 (06:47 +0100)
src/org/argeo/build/Repackage.java

index cf6adda2a6cec834f318ed5ddd3d1fc7bf377441..b0e667716d91fb42e4ea3ad22105b92cbc757fc9 100644 (file)
@@ -82,6 +82,7 @@ public class Repackage {
 
        private Path originBase;
        private Path a2Base;
+       private Path a2SrcBase;
        private Path a2LibBase;
        private Path descriptorsBase;
 
@@ -102,6 +103,7 @@ public class Repackage {
                this.originBase = Paths.get(System.getProperty("user.home"), ".cache", "argeo/build/origin");
                // TODO define and use a build base
                this.a2Base = a2Base;
+               this.a2SrcBase = a2Base.getParent().resolve(a2Base.getFileName() + ".src");
                this.a2LibBase = a2Base.resolve("lib");
                this.descriptorsBase = descriptorsBase;
                if (!Files.exists(this.descriptorsBase))
@@ -1015,9 +1017,10 @@ public class Repackage {
                                return jarPath;
 
                        }
-                       Path guessedA2Base = bundleCategoryDir.getParent();
-                       Path srcA2Base = guessedA2Base.getParent().resolve(guessedA2Base.getFileName() + ".src");
-                       Path srcJarP = srcA2Base.resolve(bundleCategoryDir.getFileName()).resolve(sourceDir.getFileName() + ".jar");
+
+                       Path relPath = a2Base.relativize(bundleCategoryDir);
+                       Path srcCategoryDir = a2SrcBase.resolve(relPath);
+                       Path srcJarP = srcCategoryDir.resolve(sourceDir.getFileName() + ".jar");
                        Files.createDirectories(srcJarP.getParent());
 
                        String bundleSymbolicName = manifest.getMainAttributes().getValue("Bundle-SymbolicName").toString();