GoogleCloudPlatform / GoogleCloudPlatform/cloud-opensource-java

Maven Enforcer Rule itself is prone to dependency conflicts of aether library

Open
#1,776 4 comments 0 reactions 0 assignees View on GitHub
bug p3
Dominant language
Java
Stars
163
Forks
80
PR merge metrics
No merged PRs in 30d

Description

I tried to apply the linkage checker enforcer rule to the project when troubleshooting https://github.com/googleapis/java-spanner-jdbc/pull/251#issuecomment-720702035, however the linkage checker failed:

```
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-linkage-checker) @ google-cloud-spanner-jdbc ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 27.293 s
[INFO] Finished at: 2020-11-03T11:00:01-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce (enforce-linkage-checker) on project google-cloud-spanner-jdbc: Execution enforce-linkage-checker of goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce: java.lang.IllegalAccessError: tried to access method org.eclipse.aether.util.ChecksumUtils.toHexString([B)Ljava/lang/String; from class org.eclipse.aether.connector.basic.ChecksumCalculator$Checksum
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/suztomo/.m2/repository/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M3/maven-enforcer-plugin-3.0.0-M3.jar
[ERROR] urls[1] = file:/Users/suztomo/.m2/repository/com/google/cloud/tools/linkage-checker-enforcer-rules/1.5.4/linkage-checker-enforcer-rules-1.5.4.jar
[ERROR] urls[2] = file:/Users/suztomo/.m2/repository/com/google/cloud/tools/dependencies/1.5.4/dependencies-1.5.4.jar
[ERROR] urls[3] = file:/Users/suztomo/.m2/repository/org/apache/bcel/bcel/6.5.0/bcel-6.5.0.jar
[ERROR] urls[4] = file:/Users/suztomo/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.4.2/maven-resolver-transport-http-1.4.2.jar
[ERROR] urls[5] = file:/Users/suztomo/.m2/repository/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
[ERROR] urls[6] = file:/Users/suztomo/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.4.2/maven-resolver-transport-file-1.4.2.jar
[ERROR] urls[7] = file:/Users/suztomo/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.4.2/maven-resolver-connector-basic-1.4.2.jar
[ERROR] urls[8] = file:/Users/suztomo/.m2/repository/org/apache/httpcomponents/httpclient/4.5.12/httpclient-4.5.12.jar
[ERROR] urls[9] = file:/Users/suztomo/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[ERROR] urls[10] = file:/Users/suztomo/.m2/repository/org/relaxng/jing/20181222/jing-20181222.jar
[ERROR] urls[11] = file:/Users/suztomo/.m2/repository/net/sf/saxon/Saxon-HE/9.6.0-4/Saxon-HE-9.6.0-4.jar
[ERROR] urls[12] = file:/Users/suztomo/.m2/repository/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
[ERROR] urls[13] = file:/Users/suztomo/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
[ERROR] urls[14] = file:/Users/suztomo/.m2/repository/isorelax/isorelax/20030108/isorelax-20030108.jar
[ERROR] urls[15] = file:/Users/suztomo/.m2/repository/commons-cli/commons-cli/1.4/commons-cli-1.4.jar
[ERROR] urls[16] = file:/Users/suztomo/.m2/repository/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar
[ERROR] urls[17] = file:/Users/suztomo/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
[ERROR] urls[18] = file:/Users/suztomo/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
[ERROR] urls[19] = file:/Users/suztomo/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
[ERROR] urls[20] = file:/Users/suztomo/.m2/repository/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar
[ERROR] urls[21] = file:/Users/suztomo/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar
[ERROR] urls[22] = file:/Users/suztomo/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
[ERROR] urls[23] = file:/Users/suztomo/.m2/repository/org/codehaus/mojo/extra-enforcer-rules/1.3/extra-enforcer-rules-1.3.jar
[ERROR] urls[24] = file:/Users/suztomo/.m2/repository/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar
[ERROR] urls[25] = file:/Users/suztomo/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
[ERROR] urls[26] = file:/Users/suztomo/.m2/repository/junit/junit/4.11/junit-4.11.jar
[ERROR] urls[27] = file:/Users/suztomo/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
[ERROR] urls[28] = file:/Users/suztomo/.m2/repository/commons-codec/commons-codec/1.12/commons-codec-1.12.jar
[ERROR] urls[29] = file:/Users/suztomo/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.1.0/maven-common-artifact-filters-3.1.0.jar
[ERROR] urls[30] = file:/Users/suztomo/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar
[ERROR] urls[31] = file:/Users/suztomo/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
[ERROR] urls[32] = file:/Users/suztomo/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
[ERROR] urls[33] = file:/Users/suztomo/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
[ERROR] urls[34] = file:/Users/suztomo/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
[ERROR] urls[35] = file:/Users/suztomo/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
[ERROR] urls[36] = file:/Users/suztomo/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar
[ERROR] urls[37] = file:/Users/suztomo/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[38] = file:/Users/suztomo/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[39] = file:/Users/suztomo/.m2/repository/org/codehaus/plexus/plexus-utils/3.3.0/plexus-utils-3.3.0.jar
[ERROR] urls[40] = file:/Users/suztomo/.m2/repository/org/apache/maven/enforcer/enforcer-api/3.0.0-M3/enforcer-api-3.0.0-M3.jar
[ERROR] urls[41] = file:/Users/suztomo/.m2/repository/org/apache/maven/enforcer/enforcer-rules/3.0.0-M3/enforcer-rules-3.0.0-M3.jar
[ERROR] urls[42] = file:/Users/suztomo/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
[ERROR] urls[43] = file:/Users/suztomo/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar
[ERROR] urls[44] = file:/Users/suztomo/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.4.1/maven-resolver-util-1.4.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[project>com.google.cloud:google-cloud-spanner-jdbc:1.17.3-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]
[ERROR]
[ERROR] -----------------------------------------------------
```

Probably the same cause as https://github.com/GoogleCloudPlatform/cloud-opensource-java/issues/1091, but as it happened twice, we should better to document or show message for such situation.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.