作为自动部署的一部分,我需要一个脚本从我们的内部存储库下载最新版本的工件。
理想情况下,此脚本将使用ant或unix shell脚本。
例如:
我有myArtifact.war,它有版本1.0,1.1和2.0 - 我需要给出正确的组ID和工件ID的脚本从我们的maven存储库中检索版本2.0(目前使用的是神器)。
有没有简单的方法可以做到这一点?
答案 0 :(得分:18)
您可以将Maven Dependency Plugin目标get
与LATEST
一起用作工件的版本:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=<URL_to_your_maven_repo>
-Dartifact=<group_id>:<artifact_id>:LATEST
-Dpackaging=jar
-Ddest=<target_dir>/<artifact_name>.jar
答案 1 :(得分:12)
您可以解析maven-metadata.xml以查看可用的版本以及哪个版本是“发布”版本。有关详细信息,请参阅有关plugin versions的答案。
如果您使用的是Nexus,则可以使用REST API查询存储库。您还可以使用REST client API来简化处理。
要更新发布版本,请在执行 mvn deploy 时激活Maven super POM中的版本配置文件。您可以通过在命令行中添加 -Prelease-profile 或 -DperformRelease = true 来实现此目的。
默认情况下,配置文件在maven-release-plugin的执行目标中激活。它由 useReleaseProfile 属性控制。有关详细信息,请参阅release-perform目标的文档。