【问题标题】:Can Maven release:prepare update snapshot version to the release version in batch modeMaven能否发布:准备批量更新快照版本到发布版本
【发布时间】:2012-07-13 13:39:45
【问题描述】:

mvn 发布:准备

它不断要求我解决快照依赖项。 有没有办法在批处理模式下执行此操作,以便 maven 自动使用关联的版本。即,如果依赖项是 1.0.0-SNAPSHOT,它会自动将此依赖项更新到 1.0.0 版本?

[INFO] Checking dependencies and plugins for snapshots ...
There are still some remaining snapshot dependencies.: Do you want to resolve them now?     (yes/no) no: : yes
Dependency type to resolve,: specify the selection number ( 0:All 1:Project Dependencies 2:Plugins 3:Reports 4:Extensions ): (0/1/2/3) 1: : 1
Resolve Project Dependency Snapshots.: 'com.my.project' set to release? (yes/no) yes: : yes
What is the next development version? (0.0.2-SNAPSHOT) 0.0.2-SNAPSHOT: : 0.0.2-SNAPSHOT

【问题讨论】:

  • 你试过用mvn的--batch-mode 吗?

标签: maven version release prepare


【解决方案1】:

您可以在发布前通过versions-maven-plugin 更新 SNAPSHOT。

【讨论】:

  • 为此目的,我面临着相同的插件(versions-maven-plugin 2.2)。但是,由于某种原因,它不起作用。我只是使用-versions:use-releases,我的项目的初始版本是1.0.0-SNAPSHOT。有什么解决办法吗?谢谢!!
【解决方案2】:

如果您的依赖项是您自己的程序,并且它的生命周期与您尝试发布的程序密切相关,您可以考虑使用多模块项目:http://maven.apache.org/guides/mini/guide-multiple-modules.html。 Maven 发布插件会更新所有依赖模块的版本。

如果没有,您可能正在做一些您不应该做的事情。 仅将 1.0.0-SNAPSHOT 更改为 1.0.0 并不能确保您的应用程序将继续工作。所以不认为Maven应该!

进一步考虑

Maven 发布插件会检查您是否使用快照依赖项,因为根据定义,快照是不稳定的版本。它可能会随着时间而改变。这意味着今天有效的方法明天可能无效。

发布意味着您的版本是稳定的,并且构建可以随时复制而无需任何更改。使用快照版本,此断言变为错误。

所以,

【讨论】:

    【解决方案3】:

    请注意,根据 maven-release-plugin 文档,您可以使用 allowTimestampedSnapshots 配置 Maven 忽略 SNAPSHOT 依赖项检查:

    allowTimestampedSnapshots:

    是否允许带时间戳的 SNAPSHOT 依赖项。默认是在查找任何 SNAPSHOT 时失败。

    • 类型:布尔值
    • 自:2.0-beta-7
    • 必填:否
    • 表达式:${ignoreSnapshots}
    • 默认值:假

    或者直接运行下面的命令:

    mvn release:prepare -DignoreSnapshots=true

    但是,仍然建议在进行最终发布之前解决所有 SNAPSHOT 依赖项,因为这是大多数人使用的约定。您应该始终考虑在开发阶段手动执行,而不是在发布阶段自动批处理,因为更改/升级项目的依赖项(您自己或第三方 jar)有时可能会引入错误或不兼容并破坏您的项目,这通常需要开发人员的注意并在最终发布之前修复它们。

    换句话说,依赖解析不是一个应该在发布阶段完成的任务,而且它不是一个应该在没有开发人员注意的情况下自动完成的任务。

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多