Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
I have a problem that Maven discards *all* transitive dependencies when a single of them misses <version>. It breaks workflows, and it is not clear why Maven behaves like that.
I'm using Maven 3.8.6.
Sample:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>TestBugMaven</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>5.6.1</version> </dependency> </dependencies> </project>
Test: mvn dependency:tree
Output:
[WARNING] The POM for org.apache.jmeter:ApacheJMeter_core:jar:5.6.1 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) @ TestBugMaven --- [INFO] org.example:TestBugMaven:jar:1.0-SNAPSHOT [INFO] \- org.apache.jmeter:ApacheJMeter_core:jar:5.6.1:compile
Frankly speaking, I do not understand why Maven discards ALL transitive dependencies in case it observes a single one with "missing version".
Note: adding dependencyManagement does not seem to fix the case, so it is even more confusing.
The following still discards transitive dependencies:
<dependencyManagement> <dependencies> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service-annotations</artifactId> <scope>compile</scope> <version>1.1.1</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>5.6.1</version> </dependency> </dependencies>