作为自动化部署的一部分,我需要一个脚本来从我们的内部存储库中下载最新版本的工件。
理想情况下,此脚本将使用 ant 或 unix shell 脚本。
例如:
我有 myArtifact.war 并且它有 1.0 、 1.1 和 2.0 版本 - 我需要给定正确组 id 和工件 id 的脚本才能从我们的 maven 存储库中检索 2.0 版本(当前使用工件)。
有什么简单的方法可以做到这一点?
作为自动化部署的一部分,我需要一个脚本来从我们的内部存储库中下载最新版本的工件。
理想情况下,此脚本将使用 ant 或 unix shell 脚本。
例如:
我有 myArtifact.war 并且它有 1.0 、 1.1 和 2.0 版本 - 我需要给定正确组 id 和工件 id 的脚本才能从我们的 maven 存储库中检索 2.0 版本(当前使用工件)。
有什么简单的方法可以做到这一点?
您可以将 Maven 依赖插件目标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
您可以解析 maven-metadata.xml 以查看可用的版本,以及哪个版本是“发布”版本。有关更多详细信息,请参阅有关插件版本的此答案。
如果您使用的是 Nexus,则可以使用REST API来查询存储库。您还可以使用REST 客户端 API来简化您的处理。
要更新发布版本,请在执行mvn deploy时激活Maven 超级 POM中的发布配置文件。您可以通过将-Prelease-profile或-DperformRelease=true添加到命令行来执行此操作。
默认情况下,配置文件在 maven-release-plugin 的执行目标中被激活。它由useReleaseProfile属性控制。有关更多详细信息,请参阅发布执行目标的文档。