Maven 获取最新的快照或发布

Posted

技术标签:

【中文标题】Maven 获取最新的快照或发布【英文标题】:Maven get LATEST Snapshot or Release 【发布时间】:2019-05-15 15:48:59 【问题描述】:

我想使用配置文件来解析我的项目的最新版本。 具有配置文件的当前项目没有改变......只有版本需要更新,我不想每隔几周触摸项目来调整我的插件版本。

    <profile>
        <id>productive</id>
        <properties>
            <myPluginsVersion>RELEASE</myPluginsVersion>
        </properties>
    </profile>

    <profile>
        <id>development</id>
        <properties>
            <myPluginsVersion>LATEST</myPluginsVersion>
        </properties>
    </profile>

在 maven 3.x 中不推荐使用 LATEST 或 RELEASE。还有其他方法吗?我已经使用了带有更新属性的版本插件。但是这个插件更新了我的所有属性,项目不再工作。我只想自动更新 myPluginsVersion 而不用配置文件触及项目。

【问题讨论】:

你试过versions:update-property吗?它允许您设置特定属性和一系列版本,您可以在其中使用 [1.5,) 之类的内容来表示“版本 1.5 或更高版本”。 我尝试了多个版本。但如果我想要发布版本,它会下载快照版本。 versions:update-property 是获取最新版本或快照版本还是我必须设置我想要的版本? mojohaus.org/versions-maven-plugin/… 表示标准行为是加载快照,但是有一个参数allowSnapshots 我试过这个插件,效果很好……但它更新了需要保存的 pom.xml……这意味着我每次都必须更新 pom.xml。跨度> Maven 遵循构建可重复性的理念,即版本控制中的相同修订应该始终以相同的方式构建。为此,在 pom 中明确给出所有版本号很重要,这样在一年的时间里,相同版本的构建将以相同的方式运行。 【参考方案1】:

RELEASELATEST 特性被删除是有充分理由的:Maven 的目标是可重现的构建,如果每次执行时附带的版本不一样,那么它的目的就落空了。为了使您的项目保持最新,您可以运行 mvn versions:use-latest-releases,检查一切是否正常,然后提交更新的 POM。

【讨论】:

以上是关于Maven 获取最新的快照或发布的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins Maven 发布:替换快照依赖

是否可以从 NSFetchedResultsController 获取最新快照

Maven - 当 pom 版本为快照时生成最新版本 jar

Maven 依赖项:从 settings.xml 获取最新的忽略存储库

maven学习

maven学习