从Maven存储库下载工件而不使用Maven

时间:2019-03-21 14:14:03

标签: shell maven wget artifactory nexus

在各种Shell脚本中,我们需要从Maven存储库(目前为Nexus 2.x,但将来可能会更改)中下载工件。

运行脚本的服务器通常未安装Maven。所以我正在寻找基于http的东西。

一方面,有一个REST接口,可以像

那样使用
wget "http://local:8081/service/local/artifact/maven/redirect?g=com.mycompany&a=some-app&v=1.2.3"

另一方面,您可以构建一个似乎适用于不同Maven存储库的“标准” URL。它由一个前缀组成,然后是带有斜杠而不是点的groupId,artifactId,版本和文件名,格式为artifactId-(classifier)-version.type

推荐的做法是什么?

1 个答案:

答案 0 :(得分:3)

Maven coordinates section of the POM reference描述了您提到的第二种情况。总的来说,我发现最容易向学习Maven的人们解释这种模式,即位于本地还是远程的工件位于

$REPO/groupId/as/path/artifactId/version/artifactId-version[-classifier].type

其中$ REPO可以是$USER_HOME/.m2/repositoryhttps://remote.repo:port/...

我也希望使用第二个,因为我怀疑如果有必要,此应用有一天可以更轻松地与另一个存储库一起使用。即使不是很正确,它也具有更多自我记录功能,因此调整起来似乎更容易。