googleapis / java-shared-config

Shared Maven build configuration for Google Cloud Java client libraries.
Apache License 2.0
19 stars 15 forks source link

Ignore provided scoped dependencies from maven-dependency-plugin #875

Open mpeddada1 opened 1 month ago

mpeddada1 commented 1 month ago

This came up in an offline discussion with @burkedavison as part of https://github.com/googleapis/java-shared-config/pull/815.

The downstream / dependencies (11, java-spanner) in the PR was failing with the following error:

[INFO] --- maven-dependency-plugin:3.5.0:analyze (default-cli) @ google-cloud-spanner ---
Error:  Used undeclared dependencies found:
Error:     org.graalvm.sdk:nativeimage:jar:24.0.1:provided

However, this dependency is intentionally scoped as provided making this failure a false positive.

Potential Solution: Set the maven-dependency-plugin's ignoreNonCompile parameter to true (https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html#ignoreNonCompile) to ignore provided scoped dependencies when mvn dependency:analyze is called. The configuration change will likely be at:

https://github.com/googleapis/java-shared-config/blob/3c3c6307ea88dc56f5901a95c295d1b2d53a3559/java-shared-config/pom.xml#L144-L158

cc/ @suztomo

suztomo commented 1 month ago

I agree with excluding the dependency in the plugin configuration.