diff --git a/src/it/simple/pom.xml b/src/it/simple/pom.xml index 9af386b9..1f780280 100644 --- a/src/it/simple/pom.xml +++ b/src/it/simple/pom.xml @@ -14,14 +14,10 @@ org.apache.maven.plugins maven-compiler-plugin - 3.1 - - 1.6 - 1.6 - - -Xlint - - + 3.8.0 + + 11 + com.github.wvengen @@ -39,6 +35,14 @@ true + + + org.apache.logging.log4j + log4j-core + 2.14.1 + runtime + + diff --git a/src/it/simple/proguard.conf b/src/it/simple/proguard.conf index 274650f0..bdd94f3b 100644 --- a/src/it/simple/proguard.conf +++ b/src/it/simple/proguard.conf @@ -1,5 +1,3 @@ --libraryjars /lib/rt.jar - -dontnote -dontwarn diff --git a/src/main/java/com/github/wvengen/maven/proguard/ProGuardMojo.java b/src/main/java/com/github/wvengen/maven/proguard/ProGuardMojo.java index 02e74dac..3ebfcae1 100644 --- a/src/main/java/com/github/wvengen/maven/proguard/ProGuardMojo.java +++ b/src/main/java/com/github/wvengen/maven/proguard/ProGuardMojo.java @@ -866,6 +866,27 @@ private void attachTextFile(File theFile, String mainClassifier, String suffix) } } + + private Set getAllPluginArtifactDependencies(ProGuardMojo mojo) throws MojoExecutionException { + Set files = new HashSet<>(getProguardJars(mojo)); + for (Artifact artifact : mojo.pluginArtifacts) { + files.add(artifact.getFile().getAbsoluteFile()); + files.addAll(getChildArtifacts(artifact)); + } + + return files; + } + + private Set getChildArtifacts(Artifact artifact) { + Set files = new HashSet<>(); + for (Object child : artifact.getDependencyTrail()) { + if (child instanceof Artifact) { + files.add(((Artifact) child).getFile().getAbsoluteFile()); + files.addAll(getChildArtifacts((Artifact) child)); + } + } + return files; + } private List getProguardJars(ProGuardMojo mojo) throws MojoExecutionException { @@ -984,8 +1005,10 @@ private void proguardMain(Collection proguardJars, List argsList, java.setTaskName("proguard"); mojo.getLog().info("proguard jar: " + proguardJars); + + Set allDependencyFiles = getAllPluginArtifactDependencies(mojo); - for (File p : proguardJars) + for (File p : allDependencyFiles) java.createClasspath().createPathElement().setLocation(p); // java.createClasspath().setPath(System.getProperty("java.class.path")); java.setClassname(mojo.proguardMainClass);