【问题标题】:Maven: set release and latest xml tags in the maven-metadata.xml when running mvn installMaven:运行 mvn install 时在 maven-metadata.xml 中设置发布和最新的 xml 标签
【发布时间】:2017-12-08 14:06:48
【问题描述】:

我试图弄清楚如何将依赖项安装到我的本地 .m2 目录中,并将“最新”和“发布”标签添加到运行 mvn install 命令时生成的 maven-metadata.xml 文件中。

示例:以下是当前发生的情况。运行 mvn install 会将依赖项放入我的本地 .m2 目录,但不会生成带有指定版本的“最新”或“发布”标签的 maven-metdata.xml。

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
    <groupId>com.foo.bar</groupId>
    <artifactId>foo-bar</artifactId>
    <versioning>
        <versions>
            <version>0.0.0.20-SNAPSHOT</version>
        </versions>
    <lastUpdated>20171207212617</lastUpdated>
  </versioning>
</metadata>

下面是我想要完成的示例

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
    <groupId>com.foo.bar</groupId>
    <artifactId>foo-bar</artifactId>
    <versioning>
        <latest>0.0.0.20-SNAPSHOT</latest>
        <release>0.0.0.20-SNAPSHOT</release>
        <versions>
             <version>0.0.0.20-SNAPSHOT</version>
        </versions>
        <lastUpdated>20171207212617</lastUpdated>
    </versioning>
</metadata>

我想要这个,所以在我计划使用此依赖项的 pom 文件中,我可以将版本指定为“RELEASE”或“LATEST”,maven 会提取适当的版本,这样应用程序就不必担心显式定义pom.xml 中的版本。我正在使用 Maven v3.5.0。

对此的任何帮助将不胜感激。如果需要更多信息,请随时询问。提前谢谢!

【问题讨论】:

    标签: maven maven-3


    【解决方案1】:

    Maven 不负责为除 Maven 插件之外的任何内容设置 &lt;latest&gt;&lt;latest&gt; 可以由存储库管理器为普通工件设置。例如。您可以打开 Nexus,右键单击托管存储库并要求它重建元数据。

    &lt;release&gt; 通常也不由 Maven 设置。虽然可以通过 mvn install -DupdateReleaseInfo=true 强制 Maven 设置它 - 这确实更适用于 maven 插件的本地测试。

    许多开始从事 CI 或 CD 工作的人会考虑最新的工件。这是一个非常常见的错误。一般来说,建议始终使用严格版本,而不是 range/LATEST/RELEASE/-SNAPSHOT,这可以在今天的一个工件和明天的另一个工件中解决。这会降低您的工作流程的可预测性和可重复性。

    如果您真的想依赖最新版本(这又是一个的想法),您可以简单地使用0.0.0.20-SNAPSHOT 版本或利用范围版本。

    【讨论】:

    • 我尝试使用 arg -DupdateReleaseInfo=true 但这似乎不起作用。我不熟悉 Nexus 存储库管理器,但我一定会检查一下。谢谢你的回答!
    • 除了上面所说的使用RELEASELATEST 会产生带有most recent Maven version (3.5.2) 的警告...
    猜你喜欢
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 2013-05-15
    • 2014-07-09
    • 1970-01-01
    • 2017-06-18
    • 2018-06-12
    • 1970-01-01
    相关资源
    最近更新 更多