You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2026/06/14 20:03:20 UTC
(maven-jmod-plugin) 02/02: Enhance JModCreateMojo to handle .jmod files in classpath and stabilize class/module-path entries
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jmod-plugin.git
commit fb44e100e0cdd43f58b680999afedf3e18a8c6d0
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sun Jun 14 21:50:59 2026 +0200
Enhance JModCreateMojo to handle .jmod files in classpath and stabilize class/module-path entries
---
.../apache/maven/plugins/jmod/JModCreateMojo.java | 27 ++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/jmod/JModCreateMojo.java b/src/main/java/org/apache/maven/plugins/jmod/JModCreateMojo.java
index 11f39b8..2d426b1 100644
--- a/src/main/java/org/apache/maven/plugins/jmod/JModCreateMojo.java
+++ b/src/main/java/org/apache/maven/plugins/jmod/JModCreateMojo.java
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
@@ -453,8 +454,13 @@ public class JModCreateMojo extends AbstractJModMojo {
}
for (File file : resolvePathsResult.getClasspathElements()) {
- getLog().debug("classpathElements: File: " + file.getPath());
- classpathElements.add(file.getPath());
+ if (isJmodFile(file)) {
+ // jmod create does not accept .jmod artifacts on --class-path.
+ addModulePathElement(file);
+ } else {
+ getLog().debug("classpathElements: File: " + file.getPath());
+ classpathElements.add(file.getPath());
+ }
}
for (File file : resolvePathsResult.getModulepathElements().keySet()) {
@@ -476,6 +482,23 @@ public class JModCreateMojo extends AbstractJModMojo {
classpathElements.add(file.getPath());
}
}
+
+ // Keep class/module-path entries stable and unique while preserving order.
+ classpathElements = new ArrayList<>(new LinkedHashSet<>(classpathElements));
+ modulepathElements = new ArrayList<>(new LinkedHashSet<>(modulepathElements));
+ }
+
+ private boolean isJmodFile(File file) {
+ return file.isFile() && file.getName().endsWith(".jmod");
+ }
+
+ private void addModulePathElement(File file) {
+ getLog().debug("modulepathElements (from classpath jmod): File: " + file.getPath());
+ if (file.isDirectory()) {
+ modulepathElements.add(file.getPath());
+ } else {
+ modulepathElements.add(file.getParent());
+ }
}
private Commandline createJModCreateCommandLine(File resultingJModFile) {