[ https://issues.apache.org/jira/browse/MNG-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17902288#comment-17902288 ]
Christopher Tubbs commented on MNG-2496: ---------------------------------------- [~hohwille] wrote: {noformat} Nobody is saying that my dependencyManagement is "magically" taking influence on the dependencies of any plugins or overriding dependency versions that a plugin author has defined for his plugin. {noformat} Currently, that is kind of how dependencyManagement works for regular dependencies, though. The managed version affects not only explicitly declared dependencies, but also implicit/transitive ones. I suppose it could be very strange for a managed dependency version to influence a transitive dependency of a plugin, when that was probably never intended. One alternative would be to create a new dependencyManagement element under the pluginManagement element (and support import scope/BOM, etc.). This would allow plugin dependencies to be centrally managed, albeit with some redundancy when a managed plugin dependency is also a managed project dependency. > dependencyManagement not used for dependencies in plugin section. > ----------------------------------------------------------------- > > Key: MNG-2496 > URL: https://issues.apache.org/jira/browse/MNG-2496 > Project: Maven > Issue Type: Bug > Components: Artifacts and Repositories > Affects Versions: 2.0.4 > Reporter: Brian E Fox > Priority: Major > Fix For: 4.1.0 > > > In my parent, I have a dependencyManagement set with this jar: > <dependencyManagement> > <dependencies> > <dependency> > <groupId>com.stchome.build.maven</groupId> > <artifactId>testng-initializer</artifactId> > <version>1.0</version> > <scope>test</scope> > </dependency> > I have a plugin specified that had a dependency like this: > <plugin> > <artifactId>maven-antrun-plugin</artifactId> > <executions> > <execution> > <id>run-testng</id> > <phase>test</phase> > <configuration> > <tasks> > <java > classname="com.stchome.testng.initializer.PackageInitializer"> > <arg > path="${project.build.testOutputDirectory}"/> > <arg > path="${project.build.testSourceDirectory}"/> > </java> > <ant antfile="run-testng.xml" > inheritRefs="true" inheritAll="true"> > <property name="target.dir" > value="${project.build.directory}"/> > <property name="test-classes.dir" > value="${project.build.testOutputDirectory}"/> > <property name="test-source.dir" > value="${project.build.testSourceDirectory}"/> > </ant> > </tasks> > </configuration> > <goals> > <goal>run</goal> > </goals> > </execution> > </executions> > <dependencies> > <dependency> > <groupId>com.stchome.build.maven</groupId> > <artifactId>testng-initializer</artifactId> > </dependency> > </dependencies> > </plugin> > When I build, it doesn't seem to resolve this dependency version from > dependencyManagement > [INFO] An invalid artifact was detected. > This artifact might be in your project's POM, or it might have been included > transitively du > information we do have for this artifact: > o GroupID: com.stchome.build.maven > o ArtifactID: testng-initializer > o Version: <<< MISSING >>> > o Type: jar > [INFO] > ------------------------------------------------------------------------ > [INFO] Trace > org.apache.maven.artifact.InvalidArtifactRTException: For artifact > {com.stchome.build.maven: > n cannot be empty. > at > org.apache.maven.artifact.DefaultArtifact.validateIdentity(DefaultArtifact.java:1 > at > org.apache.maven.artifact.DefaultArtifact.<init>(DefaultArtifact.java:119) > at > org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultAr > at > org.apache.maven.artifact.factory.DefaultArtifactFactory.createDependencyArtifact > at > org.apache.maven.project.artifact.MavenMetadataSource.createArtifacts(MavenMetada > at > org.apache.maven.plugin.DefaultPluginManager.addPlugin(DefaultPluginManager.java: > at > org.apache.maven.plugin.DefaultPluginManager.verifyVersionedPlugin(DefaultPluginM > at > org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPluginManager.ja > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycle > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.bindPluginToLifecycle(Default > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.constructLifecycleMappings(De > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleE > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures( > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLi > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecu > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:256) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java > at java.lang.reflect.Method.invoke(Method.java:324) > at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) > at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) > at > org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) > at org.codehaus.classworlds.Launcher.main(Launcher.java:375) -- This message was sent by Atlassian Jira (v8.20.10#820010)