Mic*_*che 20 versioning maven multi-module
使用Maven进行软件版本控制和多模块项目的最佳实践是什么?
我的意思是,当我使用Maven创建一个多模块项目时,版本控制的最佳方法是什么?为所有模块使用单个版本(在顶部项目中定义)?要为每个模块使用一个版本(在每个模块的POM中定义)?我还缺少另一种方法吗?每种方法的优缺点是什么?
通常,不同的模块是否一起发布(可能共享相同的版本号)?
谢谢
老实说,这取决于你想做什么.多模块项目的创建有多种原因,其中一个原因是您只需要部署已更改的内容而不是所有模块.
以这种方式思考:如果你有一个非多模块项目而你只需要更改服务层中的一行,你必须重建整个项目并再次部署所有代码......即使只有你的服务层将改变.
使用多模块项目,您可以重新生成项目并仅部署更改了...您的服务.这样可以降低风险,并确保只更改了服务模块.
使用我未在此列出的多模块项目也有很多好处,但如果不保持模块的版本号同步,肯定会有很大的好处.
在构建项目时,请考虑将其部署到存储库,该存储库将所有兼容的jar放在一起进行构建(每个构建创建一个具有父级最多pom版本号的新文件夹).这样,您不需要保留有关哪些jar兼容的文档......它们都只是与内部版本号一起部署.
我自己一直在寻找这个问题的解决方案,而且版本-maven-plugin正是我所需要的.我不喜欢与SCM系统通信的发布插件.版本插件正是我们所需要的:它在项目的所有poms中设置一个新的版本号:
mvn versions:set -DnewVersion=2.0.0
Run Code Online (Sandbox Code Playgroud)
然后我可以继续提交,标签和官方构建服务器构建......
编辑:
版本插件取决于maven多模块项目的组织方式:因此,它通常不会更新复杂的多模块项目中的所有POM文件.我发现sed并且找到了更可靠的工作:
sed -i 's/1.0.0-SNAPSHOT/1.0.0-RC1/g' `find . -name 'pom.xml'`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7910 次 |
| 最近记录: |