maven2实际上挺好的。
用任何东西,都是双刃剑。关键要扬长避短。
1、用maven2,最好有自己的私服。
比如,Spring 2.5.1,可能刚release,repo1.maven.org/maven2/不一定有。
你可以install到你的私服去。
2、应该结合Ant
很多maven不灵活的地方,可以用ant来解决
3、定义meta-inf的信息。
开发OSGI的Bundle,就必须定义meta-inf信息。也可以定义自己的格式。
4、不要使用maven2相关的ide。
实际上,多使用命令。比如mvn eclipse.然后,导入到eclipse工程。
有更新,再执行mvn eclipse,在刷新工程就可以。
我非常反对,过多的依赖IDE。单元测试比较难做,无法做到持续集成!
题外话:我个人强烈倾向于调式,使用mvn jetty:run;
数据库就用hsqldb,便于使用dbunit.
毕竟,现在可以使用spring,jpa/hibernate.
完全可以做到数据库无关性,应用服务器无关性。
5、依赖关系要设计好
jar和jar之间的关系,package和package之间的关系,
开发前,设计的时候就要规划好,不能什么都靠工具。工具不是万能的。
尤其是开发OSGI bundle的时候,依赖关系一定要先设计好,
一定要保证单向依赖性!
实际上,我使用maven,中间也遇到了一些问题,总的说来,帮助还是非常大。
尤其是,新来的开发人员搭建开发、测试环境、持续集成的时候,效果非常明显!
我也承认maven2是好的思路,但是实现得不好。
最重要的是,在新的工具出现前,我们只能选择它。
不过,可以结合IVY,ant,尽可能的扬长避短。