Hi, I ran into a significant difference between maven-enforcer-plugin versions 3.0.0-M3 and 3.0.0 in the way "provided" dependencies are handled. I'm wondering if this is intended (and I would like to understand why) or a regression which should be reported.
I have several projects (reusable libraries) where I have optional support for Kryo ( https://github.com/EsotericSoftware/kryo ) which is a serialization system that is sometimes needed. In my library (LIB-1) I have Kyro code that is only reached IFF kryo is present (via Annotations) and something like this in my pom.xml file. <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency> In a second library (LIB-2) I have two dependencies: LIB-1 and a different version of Kryo in essentially the same way. <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>5.1.1/version> <scope>provided</scope> </dependency> In the pom.xml of the LIB-2 I have this <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <!-- <version>3.0.0-M3</version>--> <version>3.0.0</version> <executions> <execution> <id>dependency-convergence</id> <phase>validate</phase> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <dependencyConvergence/> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> If I run this plugin with version 3.0.0-M3 it all passes and finds these dependencies correct. With version 3.0.0 my build now fails with: [WARNING] Dependency convergence error for com.esotericsoftware:kryo:jar:5.0.0:provided paths to dependency are: +-com.example.application:myapp:jar:1.0-SNAPSHOT +-nl.example.library:mylib:jar:1.0-SNAPSHOT:compile +-com.esotericsoftware:kryo:jar:5.0.0:provided and +-com.example.application:myapp:jar:1.0-SNAPSHOT +-com.esotericsoftware:kryo:jar:5.1.1:provided I would love to understand. Thanks. -- Best regards / Met vriendelijke groeten, Niels Basjes