mvn依赖:copy-dependencies删除版本

时间:2010-12-26 12:35:36

标签: maven-2 maven-dependency-plugin

我正在使用“mvn dependency:copy-dependencies”来获取项目使用的所有依赖项源。 我在命令行中使用它,所以它看起来像这样:

mvn dependency:copy-dependencies -Dclassifier=sources -DincludeScope=compile

除了一个小问题之外它工作正常:由于某种原因,该插件删除了该版本。所以我没有使用commons-logging-1.1.1-sources.jar,而是使用commons-logging-sources.jar

文档说“stripVersion”参数应该会影响此行为,但默认值为false。此外,我试图明确地设置它并没有帮助。

我正在使用apache-maven-2.2.1和jdk1.6.0_21

谢谢, Tarlog。

2 个答案:

答案 0 :(得分:4)

这很奇怪,您可以在源代码中看到MojoParent MojoDependencyUtil)stripVersion执行它所说的内容。

几种可能性:

a)您使用的是当前版本的依赖项插件吗?

配置你的pom

 <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.1</version>
      </plugin>
    </plugins>
  </build>

或使用完全限定的目标名称:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:copy-dependencies

b)stripVersion是XML配置中的参数名称。命令行版本是

-Dmdep.stripVersion=false

尝试使用它。

答案 1 :(得分:2)

我找到了问题的根本原因。在某个父母的父母的某个地方......我的pom,stripVersion被设置为true。 我不知道它,无论如何认为设置系统属性必须覆盖xml。我甚至试图把这个属性放在我的pom中,但它仍然无济于事。不知何故,父母pom保持优势,所以我认为该属性不起作用。

当我使用-X param运行时,我看到它尽管我的配置没有改变,所以我开始挖父母poms,除非我发现问题。

感谢大家!