1. Eclipse 安装 Maven 的 m2eclipse 插件 http://www.cnblogs.com/freeliver54/archive/2011/09/07/2169527.html
2. Maven介绍http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html
3. Maven牛人的博客http://juvenshun.iteye.com/blog/359256
4.Android学习笔记之一用m2eclipse编译Android版i-jetty(Dean)http://yelinsen.iteye.com/blog/1114490
5. 江古一 博客
http://www.cnblogs.com/caroar/archive/2011/11/18/2254198.html
http://www.cnblogs.com/caroar/archive/2011/11/18/2254221.html
http://www.cnblogs.com/caroar/archive/2011/11/18/2254307.html
http://www.cnblogs.com/caroar/archive/2011/11/18/2254320.html
一.何为构建build
不管你是否意识到,构建(build)是每一位程序员每天都在做的工作。早上来到公司,我们做的第一件事情就是从源码库签出最新的源码,然后进行单元测试,如果发现失败的测试,会找相关的同事一起调试,修复错误代码。接着回到自己的工作上来,编写自己的单元测试及产品代码,我们会感激IDE随时报出的编译错误提示。
忙到午饭时间,代码编写得差不多了,测试也通过了,开心地享用午餐,然后休息。下午先在昏昏沉沉中开了个例会,会议结束后喝杯咖啡继续工作。刚才在会上经理要求看测试报告,于是找了相关工具集成进IDE,生成了像模像样的测试覆盖率报告,接着发了一封电子邮件给经理,松了口气。谁料QA小组又发过来了几个bug,没办法,先本地重现再说,于是熟练地用IDE生成了一个WAR包,部署到Web容器下,启动容器。看到熟悉的界面了,遵循bug报告,一步步重现了bug……快下班的时候,bug修好了,提交代码,通知 QA小组,在愉快中结束了一天的工作。
仔细总结一下,我们会发现,除了编写源代码,我们每天有相当一部分时间花在了编译、运行单元测试、生成文档、打包和部署等烦琐且不起眼的工作上,这就是构建。如果我们现在还手工这样做,那成本也太高了,于是有人用软件的方法让这一系列工作完全自动化,使得软件的构建可以像全自动流水线一样,只需要一条简单的命令,所有烦琐的步骤都能够自动完成,很快就能得到最终结果。
Maven就是一个优秀的构建工具
二,何为持续集成Continuous Integration(CI)
持续集成(CI)是极限编程中的概念。CI就是控制build,并通过大量的build给出统计信息,计划build的过程。
CI强调项目以很短的周期(如15分钟)集成最新的代码。实际上,CI的前提是源码管理系统和构建系统。目前业界流行的CI服务器如Hudson(Jenkins)和CruiseControl都能很好地和Maven进行集成。也就是说,使用Maven后,持续集成会变得更加方便。
三. Maven,Jenkins,Eclipse与android开发的关系
Eclipse是ide,负责编码,可视化编程,程序调试等,在Eclipse中使用maven可以简化编译,定制编译,减少重复的编译脚本工作
Maven类似linux中的make工具,进行building配置,自动化编译,只是比make强大一些,更加易用
(IDE依赖大量的手工操作。编译、测试、代码生成等工作都是相互独立的,很难一键完成所有工作。手工劳动往往意味着低效,意味着容易出错。
很难在项目中统一所有的IDE配置,每个人都有自己的喜好。也正是由于这个原因,一个在机器A上可以成功运行的任务,到了机器B的IDE中可能就会失败
,所以需要像maven这样的工具)
而Android程序可以在开发工具Eclipse上开发
m2eclipse是为在Eclipse中开发android程序而写的一个Eclipse插件,该插件使用maven来作为自动编译的工具 (更准确的说明http://www.eclipse.org/m2e/
The goal of the m2ec project is to provide a first-class Apache Maven support in the Eclipse IDE, making it easier to edit Maven's pom.xml, run a build from the IDE and much more. For Java developers, the very tight integration with JDT greatly simplifies the consumption of Java artifacts either being hosted on open source repositories such as Maven Central, or in your in-house Maven repository. m2e is also a platform that let others provide better integration with additional Maven plugins (e.g. Android, web development, etc.), and facilitates the distribution of those extensions through the m2e marketplace.)
Jenkins是continuous intergration 工具,对maven构建工具进行控制,通过大量构建给出分析报告,并对构建作出计划。