Maven
  1. Maven
  2. MNG-2496

dependencyManagement not used for dependencies in plugin section.

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 2.0.4
    • Fix Version/s: None
    • Labels:
      None
    • Complexity:
      Intermediate
    • Number of attachments :
      0

      Description

      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)

        Issue Links

          Activity

          Hide
          Jason van Zyl added a comment -

          The depMan section should not be used for plugin or for extensions. You could pull in versions of dependencies that would cause plugins or extensions to fail.

          Case in point is MNG-2934 where commons-httpclient was put in depMan and it pulled in an incompatible version which caused the webdav deployment to fail. The resolution for projects, extensions, and plugins should be fully partitioned.

          Show
          Jason van Zyl added a comment - The depMan section should not be used for plugin or for extensions. You could pull in versions of dependencies that would cause plugins or extensions to fail. Case in point is MNG-2934 where commons-httpclient was put in depMan and it pulled in an incompatible version which caused the webdav deployment to fail. The resolution for projects, extensions, and plugins should be fully partitioned.

            People

            • Assignee:
              Unassigned
              Reporter:
              brianfox brianfox
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: