|
|
![]() Ant是apache软件基金会jakarta项目中的一个子项目类似于linux下的Make,由于是基于java编写的,因此具有很好的跨平台性。Ant由一些内置任务(task)和可选择的任务组成(还可以编写自己的任务),使用Make时,你需要写一个Makefile文件,而用ant时则需要写一个build.xml文件。 ![]() Apache Maven一个潜在的基于java的apache ant的构建工具的替代者。两者之间的比较: 第一:ant脚本是可以直接运行在maven中的。maven和ant最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POM(project object model)。这个模型定义了项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,显然maven更胜一筹。 第二:Maven对所依赖的包有明确的定义,如使用那个包,版本是多少,一目了然。而ant则通常是简单的inclde 所有的jar。导致的最终结果就是,你根本无法确定JBoss中的lib下的common-logging 是哪个版本的,唯一的方法就是打开 META-INF 目录下MANIFEST.MF。估计JBoss迟早会转向Maven的。 第三:Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。 第四:maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。而ant都需要自己去写。试试 maven site 的效果。 第五:maven目前不足的地方就是没有象ant那样成熟的GUI界面,不过mavengui正在努力中。目前使用maven最好的方法还是命令行,又快又方便。 MavenIDE网站提供了各种流行开发工具下相应的插件 ![]() Rant代替远程ANT,它是一个分布式编译系统。它允许一个ANT文件去编译另外一个系统并可接收发生的异常。 ![]() JMK 这个应用程序用于保证一套文件是处于一致的状态。它基本上是要作为大多数Unix系统中的一部分,但按照平台无关性而设计。
![]() Invicta是一个开源的构建管理工具.它使用简单的项目定义文件,来生成强大的构建脚本(Apache ANT脚),从而隐藏他们的复杂性。 ![]() Savant是ANT的一个扩展。在使用Savant之前你必须先下载ANT的1.6.1以上的版本。 ![]() CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。CruiseControl提供了一个Web接口, 可随时查看当前的编译状况和历史状况 ![]() CPMake是一个Java开发的类似于GNU make的构建工具可以用于C, C++, Java, C#, XSL ...等。它的构建文件用Java脚本语言(可以是BeanShell, Rhino, Jython and Groovy)来编写以便增加灵活性。因此用户可以根据自己的项目来定制make文件。 ![]() LuntBuild是一个强大自动构建的工具。通过一个简洁的web接口就可以很容易地进行系统的持续构建。在线演示Demo:http://luntbuild.ellisonbrookes.com/luntbuild-login.jsp 登录的用户名与密码都是demo。 ![]() JAM(JavaGen Ant Modules)是一个标准组件化的ANT工具包,用来构建J2EE应用程序。它由ANT Scripts集合组成,这些脚本用来执行所有Java/J2EE多应该有的构建任务比如:编译,打包,测试,部署和J2EE服务器控制。JAM 已经发展一个卓越的构建框架,它已经可以支持CVS, Axis, Castor, JMX, Hibernate并支持JUnit 与 Cactus测试,XDoclet与基于UML的代码生成技术等。 ![]() GenJar用来生成Jar文件是一个特殊的ANT任务.它依据于类与类之间的从属关系来生成Jar文件而不是简单地依据于一个目录中的内容. ![]() Antmod是构建管理,发布管理与CVS管理的工具,它是基于ANT扩展引擎的一个实现.利用Antmod的构建插件可以加速Java的开发,它可以用来管理你的CVS,管理你的发布程序,还可以让你的软件开发过程模块化,跨项目共享构建文件.它对于基于Java的软件开发是一个强大与完全out-of-the-box的解决方案. ![]() Continuum可用于Java项目构建的持续集成,使用简单。它内置支持Maven 2,Maven 1, Ant和Shell Scripts. ![]() EL4Ant 一个轻量级的,高效的,基于Apache Ant的构建系统。它当前支持功能有: * 基于模块,递归依赖与属性的项目定义; * 编译Java源代码; * Java命令执行(Main class或JUnit); * 生成JUnit report,Checkstyle report和Javadoc; * Eclipse集成(生成.project与.classpath)等。 ![]() Ivy是一个免费基于Java的依赖管理器。它提供了一些强大的功能包括依赖传递,ant集成, maven存储库兼容,持续集成,html报告等。 ![]() Gant是一个基于Ant的构建工具,它采用Groovy脚本代替XML来编写构建逻辑。 Gant完全依赖于Ant task来做真正的事情,所以你如果用Ant实现构建,但不喜欢用XML构建文件,Gant是一个不错的选择。 ![]() Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。 ![]() ![]() 可扩展的持续集成引擎。主要用于: 1.持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。 2.监控一些定时执行的任务。 Hudson拥有的特性包括: ![]() ![]() Apache Archiva是一套可扩展的Artifact Repository管理系统。它能够与Maven,Continuum和ANT等构建工具完美结合。Archiva提供的功能包括:远程Repository代理,基于角色的安全访问管理,Artifact分发、维护、查询,生成使用报告,提供基于Web的管理界面等。
![]() |