我可以通过install:install-file安装一个工件, 但我怎么下载藏物呢?

例如:

mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST

当前回答

你可以使用dependency:copy (http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html),它接受插件配置部分中定义的工件列表,并将它们复制到指定的位置,如果需要,可以重命名它们或剥离版本。如果本地存储库或反应器中不存在工件,则此目标可以解析来自远程存储库的工件。

并不是插件的所有属性都可以在maven CLI中使用。可以指定定义了“User Property:”属性的属性。在下面的例子中,我将junit下载到我的临时文件夹中,并从jar文件中剥离版本。

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=junit:junit:4.11 -DoutputDirectory=/tmp -Dmdep.stripVersion=true

在哪里 Artifact =junit:junit:4.11是maven坐标。你指定的人造体为groupId:artifactId:version[:packaging[:classifier]]

(感谢Pascal Thivent首先提供了他的https://stackoverflow.com/a/18632876/2509415。我补充另一个答案)

其他回答

命令:

mvn install:install-file 

通常在本地存储库中安装工件,因此不需要下载它。然而,如果您想与他人共享您的工件,您将需要将工件部署到一个中央存储库,请参阅deploy插件了解更多细节。

此外,向POM添加依赖项将在构建项目时自动获取所需的任何第三方工件。例如,这将从中央存储库下载工件。

不幸的是,maven-dependency-plugin:get不支持版本范围,例如[2.17.1,)或[,)

如果你需要下载一个特定的maven工件,但是使用版本范围,就像我做的那样,看这里:

下载带有版本范围的Maven工件

关于如何获取工件二进制文件,Pascal Thivent的答案是它,但也要获得工件源jar,我们可以使用:

mvn dependency:get -Dartifact=groupId:artifactId:version:jar:sources

e.g.

mvn dependency:get -Dartifact=junit:junit:4.12:jar:sources

这是因为工件参数实际上由groupId:artifactId:version[:packaging][:classifier]组成。只有包装和分类器是可选的。

使用jar作为打包器,使用源代码作为分类器,maven依赖插件可以理解我们要求的是源jar,而不是工件jar。

不幸的是,现在源jar文件不能传递下载,这是有意义的,但理想情况下,我相信它也可以像maven eclipse插件一样尊重downloadSources选项。

使用Maven依赖插件的最新版本(2.8),从Maven中央存储库下载工件非常简单:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=groupId:artifactId:version[:packaging[:classifier]]

其中groupId:artifactId:version等是Maven坐标

使用Maven 2.0.9、Maven 2.2.1和Maven 3.0.4测试的示例:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=org.hibernate:hibernate-entitymanager:3.4.0.GA:jar:sources

(首先感谢Pascal Thivent提供的精彩答案。我正在添加另一个答案,因为它不适合评论,而且它对编辑来说太广泛了。)

下面是使用Maven 3.6获取ASM-7的示例:

mvn dependency:get -DremoteRepositories=maven.apache.org -Dartifact=org.ow2.asm:7.0:sources:jar

或者你可以从这里下载罐子:https://search.maven.org/search?q=g:org.ow2.asm%20AND%20a:asm然后

mvn install:install-file -DgroupId=org.ow2.asm -DartifactId=asm -Dversion=7.0 -Dclassifier=sources -Dpackaging=jar -Dfile=/path/to/asm-7.0.jar