只需一步即可构建Java Web应用程序

时间:2010-02-15 11:12:20

标签: java tomcat ant build-automation

The Joel Test: 12 Steps to Better Code”的第二步说明“你能一步完成构建吗?”。我对此的回答目前没有。我的申请结构如下:

+
+-MyApp // this is just a vanilla Java Application
+-MyWebApp // this Dynamic Java Web Application (deployed Tomcat and launches
           // a thread contained in MyApp) 
+-MyCommonStuff // these are common classes shared between MyApp and MyWebApp
                // Ex. Database access code & business classes

为了构建和部署我的软件,我执行以下步骤:
1.从svn中签出MyApp,MyWebApp,MyCommonStuff 2.构建MyCommonStuff.jar并复制到“libs”目录
3.构建MyApp并复制到“libs”目录
4.构建MyWebApp.war(Ant build.xml文件指定MyApp.jar和MyCommonStuff.jar所在的位置)
5. build.xml的部署部分使用Tomcat部署任务部署到tomcat服务器。

我的问题是上面的Joel规则是否适用于这种情况。即是否应该有一个“主”构建脚本执行步骤1.到5.?
该脚本应该是一个普通的#/ bin / sh脚本,还是我可以使用的工具。我倾向于坚持使用Ant和linux控制台命令 感谢

3 个答案:

答案 0 :(得分:6)

您可以(并且应该)使用maven2。它支持所需的一切(通过插件)。您只需要符合其目录约定。

此外,我建议使用Continous Integration Engine,它将采用您的maven配置并执行和部署所有内容。 HudsonTeamCity是不错的选择。

答案 1 :(得分:1)

如果您只想使用Ant,Maven的替代方法是Ivy。这只是一个依赖管理器,有点像Maven,但没有Maven所做的所有其他事情。

我建议使用其中一个。如果您有一个具有这种依赖关系的项目,那么如果您将它们存储在中央存储库中并使用依赖关系管理器来包含它们,那么您将自己变得更加容易!

答案 2 :(得分:1)

您应该执行全局Ant脚本,通过Ant ant task调用所有小蚂蚁部分。

阅读其他答案后编辑:您还应该使用maven。但是如果Maven真的有点过分,你只想一步启动整个构建,那么使用全局build.xml