Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: 2.0.6
-
Fix Version/s: 2.0.7
-
Component/s: Dependencies
-
Labels:None
-
Complexity:Intermediate
-
Number of attachments :
Description
If the dependencyManagement contains also the current artifact with a scope, this scope will overwrite the scope of the current project.
Use case: A global parent POM that defines the released versions of all artifacts. Those artifacts are all defined with "runtime" scope to enforce projects to declare compile time deps (workaround for MNG-2589) or some are declared with scope "test" since they should only be used in unit or it tests.
Problem: If that artifact is build with M206, it does no longer compile.
Reason: The declaration in the dependencyManagement section overwrites also the scope of the current artifact itself i.e. all the declared dependencies are suddenly also no longer in the compile scope.
Solution: The dependencyManagement may not overwrite the scope of the current artifact.
Workaround: Add for the current artifact in its own POM a dependencyManagement section where it is itself declared again with compile scope.
Issue Links
- relates to
-
MNG-2931
DefaultArtifactCollector changes the version of the originatingArtifact if it's in the dependencyManagement with another version
-
Simple setup to demonstrate the problem.