我遇到了我负责遗留Java maven项目的情况,我在版本控制和依赖项方面遇到了一些问题。
项目由一些子应用程序组成,其中包含一些模块+所有应用程序(或其模块)也依赖于公共模块(或更好地依赖于公共模块的某些子模块)
现在我遇到了问题:
1)看到依赖关系和更改模块的版本将导致我一团糟,因为我不知道模块的使用位置所以我不得不搜索其使用并手动更新版本。
是否有更好或其他方法可用于此依赖项/版本mash - 可能是工具支持(目前使用IntelliJ Idea)
2)我正在努力为不同分支机构中的模块/应用程序进行版本控制的明确方法
很明显,正常的发布/维护漏洞 - 比如语义版本控制,例如,小版本增加并且对于该分支是稳定的,没有其他分支使用相同的次要版本 - 这将是最好的。
但是,如果我必须为同一个次要版本设立一个分支,为另一个客户 - 并且它必须处于不同的早午餐(过去似乎也是管理常见的产品开发是未知的 - 做其他功能不应该怎么办?在另一个分支中进行(甚至禁用,不允许通过法规在代码中))
如何区分分支机构?我应该使用其中一个用于分支的版本数字,还是应该将最后一个数字附加到某些字符(例如:项目的缩写)?
A)1.5.3.2(
B)1.0.3.2-US vs 1.0.3.2-EU
(是的,我知道具有功能的产品切换类似的东西将是最好的解决方案,但这不是一个选项(由于管理和监管义务))
问题也在于工具是否支持所选择的方式。
答案 0 :(得分:-1)
表示1):是的,确实如此。您可以使用parent pom并将版本设置为父pom中的变量。更新模块版本时,只需更新父pom即可。
for 2):您可以使用git branches为客户设置不同的版本。如果您使用git分支,则需要在新提交时更新所有分支。为不同的客户使用不同的修复也很方便。
或者你也可以通过maven profiles通过maven解决它。使用不同的包命令,如
mvn package -PEU