Maven 复制 POM 中声明的父级

Maven copy parents declared in the POMs

我的最终目标是在某个目录中创建一个 Maven 存储库,其中包含 一组特定的工件及其所有依赖项。

为此,我使用以下命令:

mvn.bat dependency:copy-dependencies -f dependencies.pom
        -DoutputDirectory=localRepoDir -Dmdep.useRepositoryLayout=true
        -Dmdep.copyPom=true -Dmdep.addParentPoms=true

dependencies.pom 是:

<project>
  <modelVersion>4.0.0</modelVersion>
  <description>Dependencies</description>
  <groupId>com.dummy</groupId>
  <artifactId>dummy</artifactId>
  <version>1.0.0</version>
  <dependencies>
    <dependency>
      <groupId>com.dependency1</groupId>
      <artifactId>dep1</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.dependency2</groupId>
      <artifactId>dep2</artifactId>
      <version>1.0.0</version>
    </dependency>
  </dependencies>
</project>

执行此操作时,我注意到在依赖项的 po 中声明的父级未从 .m2 本地 maven 存储库复制到目标目录。

也许我遗漏了一些东西并且有更好的方法来做到这一点,因为使用 pom 文件来声明我想要复制的工件(连同它们的依赖项)是一种 hack。

原来 maven 使用版本 2.8 作为 dependency plugin 的默认版本。当明确指示它使用最新版本 (2.10) 时,它工作得很好。

addParentPoms 参数已经在 2.8 上为 copy-dependencies 引入,所以我想这一定是 2.8 版本中的一个错误。

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