我试图弄清楚如何在我的本地.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。
对此的任何帮助将不胜感激。如果需要更多信息,请不要犹豫。提前谢谢!
答案 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>