使用 Maven 进行软件版本控制和多模块项目的最佳实践是什么?
我的意思是,当我使用 Maven 创建一个多模块项目时,版本控制的最佳方法是什么?为所有模块使用一个版本(在顶级项目中定义)?为每个模块使用一个版本(在每个模块的 POM 中定义)?我还缺少另一种方法吗?每种方法的优缺点是什么?
一般来说,不同的模块是否一起发布(可能共享相同的版本号)?
谢谢
最佳答案
老实说,这取决于您想做什么。创建多模块项目有多种原因,其中之一是您只需要部署已更改的内容而不是所有模块。
可以这样想:如果您有一个非多模块项目,并且您只需要更改服务层中的一行,那么您必须重新构建整个项目并再次部署所有代码......即使只有您的服务层将发生变化。
使用多模块项目,您可以重新生成项目并仅部署更改的内容……您的服务。这降低了风险,并且您确信只有您的服务模块发生了变化。
使用我未在此处列出的多模块项目还有很多好处,但是不保持模块的版本号同步肯定有很大的好处。
构建项目时,请考虑将其部署到一个存储库,该存储库将所有兼容的 jar 保存在一起以进行构建(每个构建创建一个具有最父级 pom 版本号的新文件夹)。这样,您不需要保留有关哪些 jar 兼容的文档……它们都只是与内部版本号一起部署。
关于Maven : Multimodule projects and versioning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330093/