我知道我们可以下载依赖 jar ......但是我们可以下载所有依赖 jar 的父 pom 吗?
例如项目 A 引入库 B 作为依赖项,但库 B 有父 pom C.xml。
我想找到一个在 Bs 和 C.xml 中下载所有 pom.xml 的命令。
理想情况下,如果 C.xml 有另一个父 pom D.xml,我也想下载它。
我知道我们可以下载依赖 jar ......但是我们可以下载所有依赖 jar 的父 pom 吗?
例如项目 A 引入库 B 作为依赖项,但库 B 有父 pom C.xml。
我想找到一个在 Bs 和 C.xml 中下载所有 pom.xml 的命令。
理想情况下,如果 C.xml 有另一个父 pom D.xml,我也想下载它。
prunge 的答案表明您必须使用依赖插件下载它们。如果您只是想看看这些 pom,maven 会将它们下载到 repo 的本地缓存副本中。只需转到 .m2/repoistory,您就会发现它们是 -.pom。该文件的名称为 .pom,实际上是该特定工件的 pom.xml
带有添加父 POM选项的 Maven 依赖插件。
mvn dependency:copy-dependencies -Dmdep.addParentPoms=true -Dmdep.copyPom=true
如果由于 Maven 使用较旧版本的依赖插件(addParentPoms 选项需要 2.8 或更高版本)而导致这不起作用,请明确使用最新版本:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.9:copy-dependencies -Dmdep.addParentPoms=true -Dmdep.copyPom=true
这些命令以递归方式下载依赖项(包括传递依赖项)、它们的 POM 和所有父 POM。
最简单的解决方案是使用
mvn org.apache.maven.plugins:maven-dependency-plugin:2.9:resolve
或更短:
mvn dependency:resolve
它将解决所有依赖项,包括。pom 等。之后您可以离线使用此存储库进行构建。它们将被下载到本地存储库中。如果你想拥有这些文物,包括。他们的 poms 进入一个特定的目录,而不是你必须使用 @prunge 提出的建议。