Maven:运行mvn install时,在maven-metadata.xml中设置发布和最新的xml标记

时间:2017-12-07 22:10:32

标签: maven maven-3

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

示例:以下是目前正在发生的事情。运行mvn install会将依赖项放入我的本地.m2目录,但不会生成带有指定版本的“latest”或“release”标记的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。

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

1 个答案:

答案 0 :(得分:0)

Maven不负责为Maven插件设置Comment.joins(:post).where(post: posts) 。可以通过存储库管理器为普通工件设置<latest>。例如。您可以打开Nexus,右键单击托管存储库并要求它重建元数据。

<latest>通常也不是由Maven设置的。虽然可以强制Maven通过<release>设置它 - 这对于maven插件的本地测试来说真的更有用。

许多开始做CI或CD工作的人都会考虑最新的工件。这是一个非常常见的错误。一般情况下,建议始终使用严格版本而不是范围/ LATEST / RELEASE / -SNAPSHOT,它们可以在今天的一个工件和明天的另一个工件中解析。这使您的工作流程更具可预测性和可重现性。

如果确实想要依赖最新版本(这也是错误的想法),您只需使用mvn install -DupdateReleaseInfo=true版本或利用远程版本。< / p>