原帖地址:http://marshal.easymorse.com/archives/2736
经过不断的尝试,总结出一个maven项目在eclipse android环境下的集成办法。
集成的复杂性和一些问题的权衡
这个集成办法,最大的问题是比较复杂:
- eclipse集成了android adt插件;
- eclipse集成m2eclipse插件;
- maven使用了android部署的插件——maven android plugin;
- 为了把maven和eclipse集成起来的eclipse插件——m2eclipse android plugin。
这些插件关联,可以认为是串联,如果出现问题,就会影响整个软件项目。结果就碰到问题了,见关注m2eclipse集成android的eclipse插件bug,这种bug较难解决,因为要解决问题,该插件(m2eclipse-android-plugin)作者要向上游一个一个插件的排查,学习和了解他们的东西。
我原打算等待bug修改后再向下进行,但是4天了,bug还没确定问题的原因。也许哪天m2eclipse升级了,问题自然得到解决。
也曾经打算用其他办法。因为android官方支持使用ant脚本自动构建,也尝试了使用ant+ivy+ivyde的方式实现maven类似的功能。
结果是,ivy和ivyde很好的解决了类库自动依赖问题。但只能在eclipse项目中解决问题,如果使用android的ant task打包APK,不能自动将依赖类库打入包内。因此放弃。
还是用maven的方式吧。
使用maven集成的一些要点
首先是安装和环境的配置:
- eclipse项目集成maven,见为android项目集成maven
- eclipse增加m2eclipse android integration插件,目的是集成maven和eclipse adt,见[2728],我一般也不用m2eclipse,因为不需要,但是这个m2eclipse android integration插件需要,文档见[2728]
然后,针对[2732]提到的bug,我这样解决的:
取消项目的自动构建。测试了一下,这对android项目没啥影响,反正部署和运行android的项目,它自带的编译器还是要工作的。
最后一个问题,要能在工作机上打包debug签名的APK包,在服务器端,比如ubuntu server端,不借助eclipse环境下,通过服务器端全局设置,打包release签名的正式APK包。这里有个要求,pom.xml文件是一致的,在工作机上和在服务器上。不一样的是maven的settings.xml文件。
我把自己的GolfDemo生成了这样的项目,源代码见: