如何在不使用依赖项的情况下在命令行下载Maven工件:get或maven-download-plugin?

时间:2012-06-29 13:38:44

标签: maven maven-plugin maven-3

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

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

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

我也尝试了maven-download-plugin但这似乎没有正常工作(它尝试下载xerces-impl作为ant的传递依赖并且无法解决它.xerces-impl和ant都不是依赖项我的神器)。

我们将不胜感激。

5 个答案:

答案 0 :(得分:35)

此处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将从快照构建中删除时间戳。

答案 1 :(得分:23)

尝试使用最新版本的依赖项:get,它适用于我

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

适合我

答案 2 :(得分:3)

将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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

这是我使用的方法,可以满足您的需求,但打字和脑细胞消耗较少:

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

(顺便说一句,您可以添加-d dependencies=lombok 当您想要的依赖项在starter上列出,例如lombok时。)

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

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