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

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

commit d78a0d62d6e38dc5de3b041d83542ce832a6f378
Author: Ndacyayisenga-droid <ndacyayin...@gmail.com>
AuthorDate: Tue Mar 4 15:32:12 2025 +0300

    Skip POM dependencies when assembling jlink classpath
---
 .../org/apache/maven/plugins/jlink/JLinkMojo.java  | 10 ++++++---
 .../apache/maven/plugins/jlink/JLinkMojoTest.java  | 25 ++++++++++++++++++++++
 2 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/jlink/JLinkMojo.java 
b/src/main/java/org/apache/maven/plugins/jlink/JLinkMojo.java
index 915d5b7..2275e8e 100644
--- a/src/main/java/org/apache/maven/plugins/jlink/JLinkMojo.java
+++ b/src/main/java/org/apache/maven/plugins/jlink/JLinkMojo.java
@@ -464,12 +464,16 @@ public class JLinkMojo extends AbstractJLinkMojo {
         }
     }
 
-    private List<File> getCompileClasspathElements(MavenProject project) {
+    List<File> getCompileClasspathElements(MavenProject project) {
         List<File> list = new ArrayList<>(project.getArtifacts().size() + 1);
 
         for (Artifact a : project.getArtifacts()) {
-            getLog().debug("Artifact: " + a.getGroupId() + ":" + 
a.getArtifactId() + ":" + a.getVersion());
-            list.add(a.getFile());
+            boolean skip = "pom".equals(a.getType());
+            getLog().debug("Adding artifact: " + a.getGroupId() + ":" + 
a.getArtifactId() + ":" + a.getVersion()
+                    + (skip ? " (skipping)" : ""));
+            if (!skip) {
+                list.add(a.getFile());
+            }
         }
         return list;
     }
diff --git a/src/test/java/org/apache/maven/plugins/jlink/JLinkMojoTest.java 
b/src/test/java/org/apache/maven/plugins/jlink/JLinkMojoTest.java
index 5fe6fce..576ef76 100644
--- a/src/test/java/org/apache/maven/plugins/jlink/JLinkMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/jlink/JLinkMojoTest.java
@@ -21,15 +21,20 @@ package org.apache.maven.plugins.jlink;
 import java.io.File;
 import java.lang.reflect.Field;
 import java.util.List;
+import java.util.Set;
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.utils.cli.Commandline;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
 import org.junit.jupiter.api.condition.EnabledOnOs;
 import org.junit.jupiter.api.condition.OS;
+import org.mockito.Mockito;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.when;
 
 public class JLinkMojoTest {
 
@@ -77,4 +82,24 @@ public class JLinkMojoTest {
                 .contains(
                         "\\path\\to\\jlink \"--strip-debug\" \"--module-path\" 
\"foo;bar\" \"--add-modules\" \"mvn,jlink");
     }
+
+    @Test
+    void getCompileClasspathElements() throws Exception {
+        // Given
+        MavenProject project = Mockito.mock(MavenProject.class);
+
+        Artifact pomArtifact = Mockito.mock(Artifact.class);
+        when(pomArtifact.getType()).thenReturn("pom");
+
+        Artifact jarArtifact = Mockito.mock(Artifact.class);
+        when(jarArtifact.getType()).thenReturn("jar");
+        when(jarArtifact.getFile()).thenReturn(new File("some.jar"));
+
+        when(project.getArtifacts()).thenReturn(Set.of(pomArtifact, 
jarArtifact));
+
+        List<File> classpathElements = 
mojo.getCompileClasspathElements(project);
+
+        // Then
+        assertThat(classpathElements).containsExactly(new File("some.jar"));
+    }
 }

Reply via email to