如何使用versions-maven-plugin更新非模块的父级?
Posted
技术标签:
【中文标题】如何使用versions-maven-plugin更新非模块的父级?【英文标题】:How can I update the parent of a non-module with versions-maven-plugin? 【发布时间】:2013-06-14 14:52:56 【问题描述】:我有一个项目 x
有几个模块,像往常一样在 Maven 中,x-api
,x-impl
等。
为了保持一致,还有一个目录x-ear
,其中包含将部署在App Server 中的EAR 项目。它不是在x
POM 中的<modules>
的一部分,因为它不应该参与正常的反应堆构建。但是,它确实有相同的父 x
。
我们的版本是在versions-maven-plugin 的帮助下完成的。具体来说,我们使用
创建一个新的 SNAPSHOTmvn 版本:设置 -DnewVersion=1.2.0-SNAPSHOT -DgenerateBackupPoms=false
项目及其模块一切正常(请注意,模块没有自己的版本,它们从项目父级继承)。
当然,x-ear
没有更新,因为它不是反应堆构建的一部分。
我尝试在目录中使用cd
并使用versions.set
或versions:update-parent
,但它们不起作用。
有谁知道魔法命令? :-)
【问题讨论】:
如果你cd
进入目录并执行mvn versions:set
会发生什么?据我了解,这应该可行。
x-ear 模块不是反应堆的一部分听起来很奇怪?存在什么原因?你想达到什么目标?你想让你的生活变得轻松吗?只需将其放入模块列表中即可。
versions:update-parent
一直为我工作。如果要获取最新的快照,则需要在命令行中添加-DallowSnapshots=true
。
@AndrewLogvinov:由于 EAR 没有自己的版本(它从父级继承),我得到 [ERROR] Failed to execute goal org.codehaus.mojo:versions-maven-plugin:2.0:set (default-cli) on project payment-ear: Project version is inherited from parent. -> [Help 1]
@user944849:它在反应堆构建中不起作用,因为尚未在 repo 中安装父级。我试过mvn versions:update-parent -DallowSnapshots=true -DparentVersion=1.5.0-SNAPSHOT -DgenerateBackupPoms=false
,但我得到了结果[INFO] Current version of xyz:x:pom:1.3.0-SNAPSHOT is the latest.
【参考方案1】:
感谢 khmarbaise 给了我明确的答案:只需将 EAR 作为一个普通模块包含在项目中即可。
【讨论】:
以上是关于如何使用versions-maven-plugin更新非模块的父级?的主要内容,如果未能解决你的问题,请参考以下文章
maven pom里version是用变量方式写的,deploy时怎么变成实际的值