Skip to content

Commit 507217f

Browse files
authored
fix: maven-dependency-plugin configuration breaking downstream config (#174)
When providing configuration to the maven-dependency-plugin, `ignoredUnusedDeclaredDependencies` is a `java.lang.String[]` but mavens xml handling allows multiple formats for providing a list of values (comma separated string, or sub elements each specifying a single value). It appears that when loading the config, the value of the configuration at a lower level is blindly pre-pended as a string rather than first parsing and merging the results. Below is the debug output of the resolved configuration using the existing config added in cd635ad, the output after this change and a diff of the two. Notice, in the left hand side of the diff the malformed xml. The change introduced in this commit switches from using the comma separated string representation, to using the sub element representation thereby allowing the config resolution to create a valid config. ###### Resolved config as of cd635ad ``` [DEBUG] Goal: org.apache.maven.plugins:maven-dependency-plugin:3.1.2:analyze (default-cli) [DEBUG] Style: Regular [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?> <configuration> <analyzer default-value="default">${analyzer}</analyzer> <baseDir default-value="${basedir}"/> <failOnWarning default-value="false">${failOnWarning}</failOnWarning> <ignoreNonCompile default-value="false">${ignoreNonCompile}</ignoreNonCompile> <ignoredUnusedDeclaredDependencies> <ignoredUnusedDeclaredDependency>com.google.http-client:google-http-client-jackson2</ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency>com.google.oauth-client:google-oauth-client</ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency>javax.annotation:javax.annotation-api</ignoredUnusedDeclaredDependency>javax.annotation:javax.annotation-api</ignoredUnusedDeclaredDependencies> <outputDirectory default-value="${project.build.directory}"/> <outputXML default-value="false">${outputXML}</outputXML> <project default-value="${project}"/> <scriptableFlag default-value="$$$%%%">${scriptableFlag}</scriptableFlag> <scriptableOutput default-value="false">${scriptableOutput}</scriptableOutput> <skip default-value="false">${mdep.analyze.skip}</skip> <verbose default-value="false">${verbose}</verbose> </configuration> ``` ###### Resolved config now ``` [DEBUG] Goal: org.apache.maven.plugins:maven-dependency-plugin:3.1.2:analyze (default-cli) [DEBUG] Style: Regular [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?> <configuration> <analyzer default-value="default">${analyzer}</analyzer> <baseDir default-value="${basedir}"/> <failOnWarning default-value="false">${failOnWarning}</failOnWarning> <ignoreNonCompile default-value="false">${ignoreNonCompile}</ignoreNonCompile> <ignoredUnusedDeclaredDependencies> <ignoredUnusedDeclaredDependency>com.google.http-client:google-http-client-jackson2</ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency>com.google.oauth-client:google-oauth-client</ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency>javax.annotation:javax.annotation-api</ignoredUnusedDeclaredDependency> </ignoredUnusedDeclaredDependencies> <outputDirectory default-value="${project.build.directory}"/> <outputXML default-value="false">${outputXML}</outputXML> <project default-value="${project}"/> <scriptableFlag default-value="$$$%%%">${scriptableFlag}</scriptableFlag> <scriptableOutput default-value="false">${scriptableOutput}</scriptableOutput> <skip default-value="false">${mdep.analyze.skip}</skip> <verbose default-value="false">${verbose}</verbose> </configuration> ``` ##### Diff between resolved configs ```diff 12c12,13 < <ignoredUnusedDeclaredDependency>javax.annotation:javax.annotation-api</ignoredUnusedDeclaredDependency>javax.annotation:javax.annotation-api</ignoredUnusedDeclaredDependencies> --- > <ignoredUnusedDeclaredDependency>javax.annotation:javax.annotation-api</ignoredUnusedDeclaredDependency> > </ignoredUnusedDeclaredDependencies> ```
1 parent 9ab06b2 commit 507217f

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

pom.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,9 @@
194194
<artifactId>maven-dependency-plugin</artifactId>
195195
<version>3.1.2</version>
196196
<configuration>
197-
<ignoredUnusedDeclaredDependencies>javax.annotation:javax.annotation-api</ignoredUnusedDeclaredDependencies>
197+
<ignoredUnusedDeclaredDependencies>
198+
<ignoredUnusedDeclaredDependency>javax.annotation:javax.annotation-api</ignoredUnusedDeclaredDependency>
199+
</ignoredUnusedDeclaredDependencies>
198200
</configuration>
199201
</plugin>
200202
<plugin>

0 commit comments

Comments
 (0)