我正在使用以下项目结构
parent
+-- pom.xml (parent and reactor)
module-1
+-- pom.xml
module-...
+-- pom.xml
我希望能够在父项目上执行mvn release:prepare
并在svn中生成战争以及一致的标记结构。
现在一切似乎都工作正常,除了标记模块,也就是说,mvn release:prepare
将标记父项目,但没有标记子项目。我已经在parent-pom的配置中找到并尝试了切换commitByProject
。我已经在moduel-poms中输入并删除了scm配置,我尝试在模块-poms中配置release-plugin都无济于事。发布步骤从不要求我提供任何模块的标记名,因此不会在项目中创建标记。
如何配置父级和模块,以便mvn release:prepare
标记模块?
答案 0 :(得分:2)
我建议重新组织结构以适应Maven的最佳实践,如下所示:
root (pom.xml; parent)
+-- module-1 (pom.xml)
+-- module-2 (pom.xml)
+-- module-...
这将使您的生活更轻松,使用Maven以及通过mvn版本进行发布:准备等。
我假设你在VCS中有以下文件夹结构:
root
+-- parent (pom.xml)
+-- module-1 (pom.xml)
+-- module-2 (pom.xml)
+-- module-...
root是从版本控制签出的文件夹(SVN中的trunk;或master git)。
如果你给出了给定模块中父节点的正确相对路径,那么一切都应该没有任何问题....在父节点中配置scm部分。
答案 1 :(得分:1)
进一步,无数小时的搜索我不再认为,可以使用maven发布插件标记每个模块独立于其他模块。
我发现(并且丢失了)一个明确的评论,这对于发布插件是不可能的,并且还有其他提示,例如,发布插件只能在非交互模式下接受一个scm标记。
由于我是Java开发人员,而不是maven开发人员,因此我拒绝更改我的包结构,因此无法手动执行标记。