【问题标题】:Token for Maven package nameMaven 包名称的标记
【发布时间】:2009-10-06 18:52:53
【问题描述】:

我使用 maven/hudson 来构建我的项目。 hudson 的目标之一是 mvn package,因此我在每个构建中都生成了完整的发行版。有没有办法(可能是包的参数?)我可以将内部版本号附加到生成的存档名称中?

谢谢,

杰夫

【问题讨论】:

    标签: maven-2 hudson


    【解决方案1】:

    试试下面的。它应该仅在设置了 BUILD_NUMBER 属性时才激活,因此在不使用 hudson 时您仍会生成正确命名的构建。

    <profiles>
        <profile>
            <id>hudson-build</id>
            <activation>
                <property>
                    <name>BUILD_NUMBER</name>
                </property>
            </activation>
            <build>
                <finalName>${artifactId}-${version}-${BUILD_NUMBER}</finalName>
            </build>
        </profile>
    </profiles>
    

    我建议将其放入基础 pom.xml 中,然后可以将其作为父级引用到您的其他 pom.xml 配置中。

    有关 hudson 传递给 maven 构建的其他属性的列表,请参阅http://weblogs.java.net/blog/johnsmart/archive/2008/03/using_hudson_en.html

    【讨论】:

    • 我最终选择了这个解决方案,因为它更简单。两者都是很好的答案。谢谢。
    【解决方案2】:

    您可以使用-D[key]=[value] 将任意属性传递给Maven 构建,例如-DbuildNumber=1234,然后将您的pom 中的版本配置为`1.0.0-${buildNumber}。这种方法虽然违背了一般的 Maven 原则。你最好使用Maven的SNAPSHOT处理。 SNAPSHOT 是 Maven 每次更新依赖的关键字。

    您还可以使用buildnumber-maven-plugin 每次自动为构建版本添加一个数字。有关详细信息,请参阅此answer。 buildnumber 插件可以设置为根据 SCM 修订、时间戳或序列生成修订。

    【讨论】:

    • 我修复了对另一个答案的引用
    • 当我阅读第一个链接时,我意识到 roject 版本中有名称快照,但它没有得到扩展。在我的 POM 中,我的版本被列为 0.0.1-SNAPSHOT,但 zip 名称(由 mvn 包创建)是 -0.0.1-SNAPSHOT-package.zip。我没有将其设置为正确扩展吗?
    • 哦,我看错了。我没有安装或发布。我只是将其作为 Hudson 工件的一部分包含在内,因此不会对此进行扩展。
    • 如果您正在创建一个 zip,这意味着您正在使用程序集插件并且 package 是程序集的 id。那正确吗?您真的希望使用内部版本号创建程序集吗?
    • 是的。我们真的只是希望它便于参考,因此如果有人从 hudson 提取发行版并遇到错误,他们可以参考它来自的内部版本号(无需尝试返回并记住他们是从哪个版本下载的)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2020-07-23
    • 2014-11-10
    • 2015-11-23
    • 2017-03-18
    • 2019-11-27
    相关资源
    最近更新 更多