Eclipse 提供了在Eclipse IDE外自动构建的能力。Eclipse本身也是采用这种方式构建的。本文将分享Eclipse自动构建的一些经验,详细介绍Eclipse插件开发的自动编译过程。
环境要求:本文是基于Eclipse 3。0环境进行描述的。
如果你使用的是其他版本的Eclipse,在试验时你可能需要对一脚本进行修改。
2。Ant介绍
Ant是一个平台无关的Java项目构建工具。使用Ant可以方便的将您开发的项目的构建流程有效的管理起来,可以方便的提供给用户可发布的软件产品。使用Ant来做项目构建工具的优点被越来越多的人认可,目前开源的Java项目几乎都使用Ant做构建工具。
现在还出现了Dot Net平台上的Ant构建工具。Ant已经成为了Java项目构建的事实上的标准。
Ant通过执行构建脚本来生成可发布的软件包。构建脚本为XML格式。每一个Ant脚本中包含一个Project, Project下又包含许多的Target, Target由一个或多个Ant Task组成。
Ant的Task允许用户自己进行扩展,当Ant提供的Task不能满足你的需要时可以自己开发一个Task。一个Ant脚本可以调用另外一个Ant脚本,所以可以设计出精巧的脚本回调结构, 使您开发的Ant脚本更易于维护和扩展。
Eclipse将Ant集成到了它的IDE中,开发完一个插件项目,你可以方便的生成插件项目的构建脚本。
但是Eclipse的插件项目一般比较依赖Eclipse的开发环境,如果直接使用Ant来执行Eclipse生成的构建脚本则需要做许多额外的环境设置的工作。Eclipse的开发者考虑到了这一点,在Eclipse中提供了一个Ant的Eclipse Application。
你可以使用命令行的方式执行它,像下边这样:
3 Eclipse插件自动构件过程
3。1准备工作
1。全面分析你需要构建的项目
在编写Ant脚本前,需要对将要构建的项目有一个全面的考虑。 列出你的项目有多少个子项目需要进行构建。各个子项目之间的依赖关系如何,这关系到在脚本中对各个子项目的构建先后顺序的安排。
其次,列出项目的中间提交物清单。也就是构建的结果是什么。对于一个小项目构建的结果也许就是一个jar文件,但是对于一个几十人的开发团队开发的项目,构建结果可能包含有服务端的构建结果,客户端的构建结果,还有Web程序。中间提交物清单应该包括构建结果的文件名和存放路径以及将来部署时在未来系统中所处的逻辑位置。
2。列出构建的工作流程
也就是说在你的构建过程中先做什么,后做什么。例如通常的构建过程是:从cvs服务器获取最新版本的代码,然后对代码进行编译,之后打包部署。这个过程如果一下子想不清楚,可以先列出最顶层的过程,然后不断细化。
3。了解构建的依赖环境
一般项目都是在IDE中开发,项目的配置信息都通过IDE的设置界面进行设置。
这些设置项比较分散。如果要在使用Ant成功构建项目,则需要对IDE中的设置导出,否则构建通常会失败。另外需要了解项目使用了那些第三方的开发包,在编写构建脚本时需要考虑。Eclipse的插件项目可以方便的导出Ant构建脚本,供其他顶层脚本调用。
3。2自动构建脚本编写
在对你要构建的项目有了一个通盘的考虑之后,可以开始编写构建脚本了。最直接的方法当然是自己从头开始编写构建脚本。或者是使用一个顶层脚本按照子项目的依赖关系依次调用各个插件生成的构建脚本build。xml文件。这样能为我们节省很大一部分时间。
但是实践证明,即使是这种方式工作量还是很大。例如我们目前的项目的插件数目已经有几十个,依次调用一遍各个插件的build。xml文件依然是一件很累和乏味的事情。实际上我们也是这样做的。有没有更方便的方法呢?
原来,Eclipse本身提供了一个插件构建的脚本框架,我们只需要像填空一样编写很少的脚本代码就可以完成整个复杂的构建过程。
3。3Eclipse自动构建框架介绍
下面我们用一个例子来说明整个的构建过程。我们在下面的例子中将会编写sdk。examples的构建脚本。sdk。examples是eclipse的示例代码,你可以在eclipse的cvs里得到。
在开始之前你需要下载cvs。
exe和unzip。exe,并将他们拷贝到系统目录中,或者放置在环境变量%PATH%可以找到的地方。Cvs。exe和unzip。exe可以从以下地方下载:CVS client version 1。10 or higher on system path。
Info-Zip zip and unzip executables on system path。
第一步先获得org。eclipse。releng。eclipsebuilder。org。eclipse。releng。eclipsebuilder是eclipse的发布引擎。
D:\build>cvs -d :pserver:anonymous@dev。eclipse。org:/home/eclipse export -r R3_0_2 org。eclipse。releng。eclipsebuilder
org。
eclipse。releng。eclipsebuilder中的readme。html描述了如何构建一个eclipse的组件。