Shell 如何从maven存储库中找到工件的最新版本

Shell 如何从maven存储库中找到工件的最新版本,shell,maven-2,ant,artifactory,Shell,Maven 2,Ant,Artifactory,作为自动化部署的一部分,我需要一个脚本从内部存储库下载最新版本的工件 理想情况下,此脚本将与ant或unixshell脚本一起使用 例如: 我有myArtifact.war,它有1.0、1.1和2.0版本-我需要脚本提供正确的组id和工件id,以便从maven存储库(当前使用artifactory)检索2.0版本 有什么简单的方法可以做到这一点吗?您可以解析maven-metadata.xml以查看哪些版本可用,以及哪个版本是“发布”版本。有关更多详细信息,请参阅此答案 如果您使用的是Nexus

作为自动化部署的一部分,我需要一个脚本从内部存储库下载最新版本的工件

理想情况下,此脚本将与ant或unixshell脚本一起使用

例如:

我有myArtifact.war,它有1.0、1.1和2.0版本-我需要脚本提供正确的组id和工件id,以便从maven存储库(当前使用artifactory)检索2.0版本


有什么简单的方法可以做到这一点吗?

您可以解析maven-metadata.xml以查看哪些版本可用,以及哪个版本是“发布”版本。有关更多详细信息,请参阅此答案

如果您使用的是Nexus,则可以使用来查询存储库。您还可以使用简化处理

要更新发布版本,请在执行mvn部署时在中激活发布配置文件。您可以通过将-prerelease profile-dpperformrelease=true添加到命令行来完成此操作


默认情况下,该概要文件在maven发布插件的执行目标中被激活。它由useReleaseProfile属性控制。有关更多详细信息,请参阅目标文档。

您可以将Maven依赖插件目标
get
最新版本一起作为您的工件的版本:

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
mvn org.apache.maven.plugins:maven依赖插件:2.8:get
-德雷莫特仓库=
-Dartifact=::最新版本
-dpackage=jar
-Ddest=/.jar

发行版
,这将排除快照。如果您只需要检查当前工件版本是否已经发行,下面是一个可以做到这一点的。