maven的苦恼
maven对于java项目的开发代码组织无疑是很power的,简单清晰的pom配置,不用像ant那样关注复杂细节,灵活的组合编译打包等等,带来很多的便利。但也有让人很窝火的时候,尤其是你对它不是很了解情况下,非常容易出问题。今天就遇到一个版本变量问题。
通常组织一个比较大型的项目代码,目录数量还有层次深度是很多且复杂的,拆分为子项目,子项目下面又有子子项目,比如现在我们的项目
project-main
|
--client
|
--server
|_serv-project1
|
--serv-project2
|
|-serv-project2-sub1
|
|-serv-project2-sub2
...
项目结构分了四级,现在有这样个需求,就是由project-main这一层来定义整个项目的版本号,子项目都需遵循project-main定义的版本号。那么就可以有两种方式来实现:1)子(子)项目中hard code版本号,这个方式当版本升级时非常麻烦,届时替换不可避免,当pom文件数巨大的时候很头疼。2)在project-main中,声明属性变量,例如:
<properties> <main.version>1.0</main.version></properties>