如果我有父pom并希望将其继承到多个项目.我通常在项目的顶部添加
.我不喜欢这种方法的是,如果我父母的某些内容发生了变化,我必须编辑该父项继承的所有项目以修改版本号.有更好的方法吗?我希望我能解释的是可以理解的.
提前致谢.
我不喜欢这种方法的是,如果我的父母发生了某些变化,我必须编辑该父项继承的所有项目以修改版本号.有更好的方法吗?
就在这里!看一下Maven Versions Plugin,具体来说:
versions:update-child-modules更新项目子模块的父节点,以使版本与当前项目的版本匹配.
例如,如果您有一个聚合器pom,它也是它聚合的项目的父级,并且子级和父级版本不同步,则此mojo可以帮助修复子模块的版本.
(注意,如果您的项目因为版本不匹配而无法构建,那么您可能需要使用-N选项调用Maven以运行此目标.
编辑:当然,使用Maven3,您现在可以在子模块中拥有
在多模块或多pom项目中工作的开发人员不必在Maven 3中的每个子模块中指定父版本.相反,您可以添加无版本的父元素.
参考
您可以在发布时使用Maven Release Plugin.它将自动更新所有版本号并在源代码管理中创建一个标记(如果您在POM中配置了SCM).
我执行发布的命令通常如下,之后我从SCM导出标记并使用"mvn clean package"或"mvn clean deploy"构建它.
svn update (or whatever SCM you use) mvn clean mvn release:prepare -DautoVersionSubmodules=true mvn release:clean
因此,例如,如果您的版本是第一个"1.0-SNAPSHOT",则发布插件将创建标签"projectname-1.0",版本为"1.0",最后将当前版本增加到"1.1-SNAPSHOT".该插件将询问您的版本和标记名称,因此您可以覆盖默认值.
自动父版本化(即省略标签)是Maven空间中一个有争议的问题. 记录了一个缺陷.目前,它被认为是2.1版本分支的修复或改进,