My project consists of some dependencies that cause the same general dependency.
The general dependency storm-kafkahas a new version 1.0.2 and an old version 0.10.0
When creating a shaded jar, I see classes from both versions in my thick jar and somehow at runtime, the eldest is selected, which gives ClassNotFoundError, because there are no other dependencies associated with the older version.
jar -xvf my_shaded_fat_jar.jar
find . -name KeyValueSchemeAsMultiScheme.class
./org/apache/storm/kafka/KeyValueSchemeAsMultiScheme.class
./storm/kafka/KeyValueSchemeAsMultiScheme.class
storm/kafkaolder, and the org/apache/storm/kafkanew one I want.
The amazing part is that I do not see 0.10.0 in my relay ~/.m2:
ls ~/.m2/repository/org/apache/storm/storm-kafka/
1.0.2
How do I debug maven to find out where an older addiction comes from?
EDIT:
On startup, mvn dependency:tree -Dverbose -Dincludes=storm.kafkaI get:
[WARNING] The POM for org.apache.storm:flux-core:jar:1.0.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.storm:storm-kafka:jar:1.0.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) ---
[WARNING] Failed to build parent project for org.apache.storm:flux-core:jar:1.0.2
[WARNING] Invalid POM for org.apache.storm:flux-core:jar:1.0.2, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] Invalid POM for org.apache.storm:storm-kafka:jar:1.0.2, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] Failed to build parent project for org.apache.storm:flux-core:jar:1.0.2
[WARNING] Invalid POM for org.apache.storm:flux-core:jar:1.0.2, transitive dependencies (if any) will not be available, enable debug logging for more details
?
.m2, ~/.m2/repository/org/apache/storm