33

我想在命令行下载一个工件及其依赖项。IE

mvn [some plugin]:[goal] -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version]

我试过 mvn dependency:get 但这似乎需要一个远程存储库列表。我希望 mvn 使用 settings.xml 中已经指定的内容

我也尝试过maven-download-plugin但这似乎无法正常工作(它尝试下载 xerces-impl 作为 ant 的传递依赖项但未能解决它。xerces-impl 和 ant 都不是我的工件的依赖项)。

您的帮助将不胜感激。

4

5 回答 5

43

目标在copy这里更合适,它还允许您指定输出目录(在get目标中已弃用):

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=groupId:artifactId:version[:packaging][:classifier] -DoutputDirectory=[target] -Dmdep.useBaseVersion=true

mdep.useBaseVersion=true将从快照构建中删除时间戳。

于 2013-09-11T19:56:06.093 回答
27

尝试使用最新版本的依赖:get,它对我有用

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version]

为我工作

于 2012-06-29T16:08:46.203 回答
4

将 TestNG 6.9.4 版下载到本地 ~/.m2/repository 的示例(使用 maven-dependency-plugin:get):

mvn org.apache.maven.plugins:maven-dependency-plugin:RELEASE:get \
-Dartifact=org.testng:testng:6.9.4:jar

将 JUnit 4.11 版下载到当前工作目录的示例(使用 maven-dependency-plugin:copy):

mvn org.apache.maven.plugins:maven-dependency-plugin:RELEASE:copy \
-Dartifact=junit:junit:4.11:jar
于 2015-07-06T11:25:12.493 回答
0

最简单的解决方案是创建一个具有适当依赖项的简单 pom 并在该迷你项目上执行 mvn clean package ...

于 2012-06-29T14:03:14.407 回答
0

这是我使用的方法,符合您的需要,但打字和脑细胞消耗更少:

curl https://start.spring.io/starter.tgz | tar -xzvf -

-d dependencies=lombok (顺便说一句,当你想要的依赖项列在像 lombok 这样的启动器上时,你可以添加。)

然后,在 中vim pom.xml,删除任何父项并修改依赖项之间的所有内容。您只需要填写组、工件和版本。

最后,mvn package. 它开始下载...

于 2020-02-27T09:52:56.087 回答