【问题标题】:How to set maven options to run for release or snapshot如何设置 Maven 选项以运行发布或快照
【发布时间】:2015-11-08 01:22:07
【问题描述】:

我使用 Jenkins 服务器作为 CI。我正在使用 maven docker 来运行 maven 任务。所以这是我的问题和我的疑问。

对于 jenkins,我使用 maven 插件来配置和编译 maven 任务。如果我想构建,我运行 Build with Parameters,如果我想创建快照或发布,我运行 Perform Maven Release 并在此处我可以指定版本。

但是使用 docker 会更复杂,因为我必须为 mvn 命令使用参数。所以:

如何设置选项以创建发布或快照版本?

我有带有我的 nexus url 和用户/密码的 settings.xml 文件,但问题在于它与 docker 一起使用。

我正在使用 docker.io/maven 映像。

【问题讨论】:

  • 好的,我想用命令行来做。我需要自动化发布和过去以 maven newReleaseVersion 和 NextSnapShotVersion 参数。

标签: java maven jenkins docker maven-release-plugin


【解决方案1】:

Maven 根据版本号而不是命令行参数来处理发布和快照。

有一个maven-release-plugin 可以自动执行发布构建所需的工作;但是,在使用它之前,您可能需要一些背景信息。

要“构建发布”,您需要签入缺少“-SNAPSHOT”标识符的 pom.xml(因此您有发布源代码的历史记录),然后使用“mvn deploy”构建插件" 命令(假设您的 pom.xml 已完全配置,但可能不是)。然后您将签入“下一个”-SNAPSHOT 版本,每个人都将继续开发下一个快照版本。

如果这听起来工作量很大,请记住,所有这些都是通过 maven-release-plugin 自动完成的。这意味着工作只完成一次,之后的每个版本都是自动化的。这减少了发布中人为错误的可能性,并加快了发布过程的速度。最初的设置是值得的。

强烈建议不要使用“mvn deploy”命令重建非 SNAPSHOT 编号,因为它会使二进制文件依赖于版本号和构建时间,而最后一点信息不会被跟踪。

【讨论】:

    【解决方案2】:

    如果您的版本以-SNAPSHOT 结尾,Maven 会自动将其视为快照。否则视为发布版本。

    然后,可能还有其他的选择,比如测试、调试、代码分析,但是如果不亲自参与项目,就很难知道。

    [更新] Jenkins 似乎对发布版本进行了大量检查,如下所述:http://labs.bsb.com/2014/02/better-maven-releases-with-jenkins/

    【讨论】:

    • 好吧,我有一个疑问:在 jenkins 中,如果你使用 Perform Maven Release 插件,你可以同时定义:Release Version 和 Snapshot Version (开发版)。
    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 2019-05-15
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多