2

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

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

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

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

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

谢谢,塔洛格。

4

2 回答 2

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

尝试使用它。

于 2010-12-26T12:58:08.030 回答
2

我找到了问题的根本原因。在...我的 pom 的 parent 的 parent 的某个地方,stripVersion 设置为 true。我对此一无所知,无论如何认为设置系统属性必须覆盖xml。我什至试图把这个属性放在我的 pom 中,但它仍然没有帮助。不知何故,父 pom 仍然占主导地位,所以我认为该属性不起作用。

当我使用 -X 参数运行时,尽管我进行了配置,但我发现它没有改变,所以我开始挖掘父 pom,除非我发现问题。

谢谢大家!

于 2010-12-26T13:20:36.870 回答