[ https://issues.apache.org/jira/browse/MNG-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17823264#comment-17823264 ]
Jörg Hohwiller commented on MNG-2496: ------------------------------------- Sorry to come here late but IMHO the argument given by [~jvanzyl] is not convincing or even valid: The actual request is being able to omit the version of a dependency inside a plugin declarion. This is currently not supported and from a users PoV this seems like a natural feature request. If that feature would be used the omitted dependency version would be taken from the dependencyManagement. Indeed when using this feature some projects may end up in situations where they have a version V configured for a dependency D in their dependencyManagement and then some child module M1 adds a dependency to D and another module M2 adds dependency to D in a plugin P and this combination would clash as maybe the plugin P is not compatible with D in version V. But to be fair one would have to see that the same problem can also happen in M2 if it uses D as a regular dependency so what should be plugin specific about this problem? Could this be reconsidered for maven 4.x? There are some major changes in Maven 4.x anyway and still I do not see any incompatibility when introducing this feature since earlier versions would just fail if the version is omitted. > 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 > > 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)