[
https://issues.apache.org/jira/browse/MNG-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16868514#comment-16868514
]
Adam Gent commented on MNG-2496:
--------------------------------
[~jvanzyl] We are having an issue with plugins depending on Eclipse JDT:
[https://repo1.maven.org/maven2/org/eclipse/jdt/org.eclipse.jdt.core/3.13.102/org.eclipse.jdt.core-3.13.102.pom]
which uses version ranges.
If the plugin authors do not declare all the dependencies for Eclipse JDT in
the dependencyManagement section (in the plugin pom) then {{mvn \-U}} will
fetch all of the maven-metadata.xml for the Eclipse dependencies every time
even if the downstream non plugin projects declare all the dependencies in
either the plugins dependencies section or dependencyManagement section.
Specific example is the maven eclipse formatter project. Here is the projects
issue:
https://github.com/revelc/formatter-maven-plugin/issues/301#issuecomment-503828993
> 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 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
(v7.6.3#76005)