在各种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
。
推荐的做法是什么?
答案 0 :(得分:3)
Maven coordinates section of the POM reference描述了您提到的第二种情况。总的来说,我发现最容易向学习Maven的人们解释这种模式,即位于本地还是远程的工件位于
$REPO/groupId/as/path/artifactId/version/artifactId-version[-classifier].type
其中$ REPO可以是$USER_HOME/.m2/repository
或https://remote.repo:port/...
。
我也希望使用第二个,因为我怀疑如果有必要,此应用有一天可以更轻松地与另一个存储库一起使用。即使不是很正确,它也具有更多自我记录功能,因此调整起来似乎更容易。