`
zhanglei_2008
  • 浏览: 26369 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在Eclipse中使用ANT灵活构建Web应用

阅读更多
前言

  ant是java开发者工具箱的重要一环,junit,xdoclet等都与它紧密关联,程序员可能习惯了IDE提供的自动构建,甚至部署的功能,从而忽略了ant本身,其实,主流的IDE通常是内置ant任务来完成这些工作的,熟悉ant内在的机理,可以阅读或简单修改build.xml无疑可以帮助你更灵活地集成、管理应用项目,如果需要学习maven这种开源项目管理解决方案,也是要以理解ant为基础的哟。另外,使用ant的过程实际上对构建进行了文档化,它是无关于IDE的,想象一下,你的同事中可能三分之一在用JbuilderX,三分之一用eclipse,还有一些是别的。

  本人使用eclipse3.2,以前的构建和发布工作都由myeclipse插件作了,实践了一下手动构建,记此备忘。

  实践

  准备工作:这是我的个人习惯,把所有公用的类库jar置于一个固定目录,分好类,不要丢在一个文件夹下,如jakarta-commons、hibernate、spring、struts等,这些是源码构建时需要用到的,在部署时可能有一些不用再打进去了,比如servlet.jar。如果你们有自己的framework,也一并放在这里。然后,打开eclipse,进入Windows->Preferences->Java->User Libraries,增加一个自己的库,比如说mylib,把刚才那些公共的jar全部添入,这样有个好处,在eclipse项目中,不用再看到烦人的长长的jar列表了,比较整洁。

  下来正式进行:

  1.新建一个Java Project,此时就不要再选你的j2ee插件内置的一些选项了,至简即可。

  2.在root下建几个文件夹,我们在网上下载的开源项目中经常可以看到这些,比如:

  src - 源码
  classes - 编译
  web - jsp等
  lib - 库,这里可以简单地把mylib下的东东copy过来,便于将来发布源码。
  dlist - 输出的jar或war

  当然,我们要建一个build.xml,eclipse中会出现一个蚂蚁的小图标,一般这个文件建立后,下一个项目简单的copy过去,稍加改动就可以了。

  3.打开项目的属性页,在Java Build Path的库选项中,加入我们自定义的公共库mylib.至于Builders方式就不用改了,使用默认的Java Builer即可,我只是项目部署时使用ant,平常的排错工作就交给IDE吧。

  4.重中之重,写你的build.xml,网上文章很海,我这里就不再啰嗦了,基本上就分那几个任务:

  4.1 先要声明一些路径变量,如

<property name="war.dir" value="dlist" />

  也可以将其写至properties文件中,在这里引用;

  4.2 声明编译的类路径,如下:

<path id="master-classpath">
 <fileset dir="${lib.root}/struts">
  <include name="struts-menu-2.3.jar" />
  <include name="struts.jar" />
 </fileset>
 <fileset dir="${lib.root}/jakarta-commons">
  <include name="commons-*.jar" />
 </fileset>
 <fileset dir="${lib.root}/ibatis2.0.9">
  <include name="ibatis-*.jar" />
 </fileset>
 <fileset dir="${lib.root}/jdbcdriver">
  <include name="jtds-0.9-rc2.jar" />
 </fileset>s
  ......
</path>

  4.3 清空输出目录,如web,dlist等。

  4.4 编译构建:

<target name="build" description="Compile main source tree java files into class files, generate jar files">

<mkdir dir="${build.dir}" />

<javac destdir="${build.dir}" source="1.3" target="1.3" debug="true" deprecation="false" optimize="false" failonerror="true">
 <src path="${src.dir}" />
 <classpath refid="master-classpath" />
</javac>

<copy todir="${build.dir}" preservelastmodified="true">
 <fileset dir="${src.dir}">
  <include name="**/*.xml" />
  <include name="**/*.properties" />
 </fileset>
</copy>
<!-- ============================================= -->
<!-- 据测试,资源文件不能被打到jar文件中,其余均可 -->
<!-- ============================================= -->
<copy todir="${webclasses.dir}/conf" preservelastmodified="true">
 <fileset dir="${src.dir}/conf">
  <include name="springResources*.properties" />
 </fileset>
</copy>

<mkdir dir="${weblib.dir}" />

<jar jarfile="${weblib.dir}/${name}.jar" compress="true">
 <fileset dir="${build.dir}">
  <include name="**" />
 </fileset>
</jar>

<copy todir="${weblib.dir}" preservelastmodified="true">

<fileset dir="${lib.root}">
 <include name="log4j-1.2.8.jar" />
</fileset>
<fileset dir="${lib.root}/struts">
 <include name="struts-menu-2.3.jar" />
 <include name="struts.jar" />
</fileset>
<fileset dir="${lib.root}/jakarta-commons">
 <include name="commons-*.jar" />
</fileset>
<fileset dir="${lib.root}/spring-1.1.3">
 <include name="spring.jar" />
 <include name="aopalliance.jar" />
</fileset>
......

</copy>

</target>

<!-- ============================================= -->
<!-- Compile main Java sources and copy libraries -->
<!-- ============================================= -->
<target name="warfile" description="Build the web application archive">

<mkdir dir="${dist.dir}" />
<war warfile="${dist.dir}/${name}.war" basedir="${war.dir}" webxml="${war.dir}/WEB-INF/web.xml">
 <include name="*" />
 <include name="WEB-INF/*.*" />
 <exclude name="WEB-INF/web.xml" />
 <include name="WEB-INF/classes/*.*" />
 <include name="WEB-INF/lib/**" />
 <exclude name="**/.*" />
</war>

</target>


  4.5 打成war

<target name="warfile" description="Build the web application archive">

<mkdir dir="${dist.dir}" />
<war warfile="${dist.dir}/${name}.war" basedir="${war.dir}" webxml="${war.dir}/WEB-INF/web.xml">
 <include name="*" />
 <include name="WEB-INF/*.*" />
 <exclude name="WEB-INF/web.xml" />
 <include name="WEB-INF/classes/*.*" />
 <include name="WEB-INF/lib/**" />
 <exclude name="**/.*" />
</war>

</target>

  4.6 把几个任务串起来,弄一个default target

<target name="all">
 <antcall target="clean" />
 <antcall target="build" />
 <antcall target="warfile" />
</target>

  打完收功。在实践中发现,一些配置文件,如struts-config.xml ibatis和spring的xml都可以打进jar文件,spring资源文件好象不行,得单独copy至WEB-INF\classes下,另外,你的web文件夹下,事先得放好web.xml,以及一些tld文件哟。
分享到:
评论

相关推荐

    在eclipse中使用ant灵活构建web应用.docx

    在eclipse中使用ant灵活构建web应用.docx

    ant构建web项目

    ant 自动化构建eclipse web项目, 并且打包发布,启动tomcat和浏览器

    Eclipse中使用ANT

    前言 ant是java开发者工具箱的重要一环,...另外,使用ant的过程实际上对构建进行了文档化,它是无关于IDE的,想象一下,你的同事中可能三分之一在用JbuilderX,三分之一用eclipse,还有一些是别的。 本人使用eclipse3

    精通Eclipse.pdf

    Eclipse下SWT、Junit、Ant的使用方法以及Web应用开发;Eclipse下Struts、CVS的应用以及数据库构建和WebService应用开发;Eclipse下的Hibernate、Spring及其他插件的应用和开发;电子商务系统、管理信息系统、文件...

    Eclipse+Web开发从入门到精通(实例版)

    第4 章 在 Eclipse 中进行资源构建 ——Ant 使用实例... 60 4.1 Ant 简介... 60 4.1.1 构造文件的主要标记... 60 4.1.2 Ant 的常用任务(Task)... 62 4.2 Eclipse 与Ant 的集成... 64 4.2.1 创建Ant...

    精通Eclipse

    Eclipse下SWT、Junit、Ant的使用方法以及Web应用开发;Eclipse下Struts、CVS的应用以及数据库构建和WebService应用开发;Eclipse下的Hibernate、Spring及其他插件的应用和开发;电子商务系统、管理信息系统、文件...

    Eclipse精要与高级开发技术

    再介绍了JUnit,Eclipse配置管理,Eclispe开发环境中的应用服务器Tomcat,Eclipse中的资源构建和构建工具Ant;最后介绍了Eclipse下的Web应用开发、插件开发技术、Struts应用开发和MySQL数据库应用开发。

    Eclipse精要与高级开发技术.part1

    再介绍了JUnit,Eclipse配置管理,Eclispe开发环境中的应用服务器Tomcat,Eclipse中的资源构建和构建工具Ant:最后介绍了Eclipse下的Web应用开发、插件开发技术、Struts应用开发和MySQL数据库应用开发。 本书适合于...

    Eclipse精要与高级开发技术.part2

    再介绍了JUnit,Eclipse配置管理,Eclispe开发环境中的应用服务器Tomcat,Eclipse中的资源构建和构建工具Ant:最后介绍了Eclipse下的Web应用开发、插件开发技术、Struts应用开发和MySQL数据库应用开发。 本书适合于...

    Eclipse精要与高级开发技术.part3.rar

    再介绍了JUnit,Eclipse配置管理,Eclispe开发环境中的应用服务器Tomcat,Eclipse中的资源构建和构建工具Ant:最后介绍了Eclipse下的Web应用开发、插件开发技术、Struts应用开发和MySQL数据库应用开发。 本书适合于...

    Eclipse安装包!

    Eclipse是一个开放源代码的、基于Java的可扩展开发平台。它由IBM公司开发,现在由Eclipse基金会进行维护。...Eclipse支持多种构建工具,包括Ant、Maven等。 Eclipse具有丰富的插件生态系统,可以通过插件扩展其功能

    eclipse全程指南-王占全

    导入项目后可能会报错,那是因为项目所需要的JAR文件不存在(本书所有项目所需的JAR包是通过外部构建路径添加的,并没有将其放入到WEB-INF/lib目录下)或安装路径没有和本书中所描述的一致,这样需要读者自己添加和...

    Eclipse in Action

    第五章:讲述关于ant(开源的构建工具),如何集成到eclipse中 第六章:eclipse对CVS的支持,学习怎样共享项目,检出项目,多人开发如何处理代码冲突 第七章:eclipse是如何支持jsp,servlet的web开发,通过第三方...

    Eclipse权威开发指南2.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 JDT用户界面概述.....

    Eclipse权威开发指南3.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 ...

    Eclipse权威开发指南1.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 ...

    Jetty中文手册

    如何在Ant中使用Jetty Maven和Ant的更多支持 Jetty Maven插件(Plugin) Jetty Jspc Maven插件(Plugin) Maven web应用工程原型 Ant Jetty插件(Plugin) 使用集成开发环境(IDEs) 在Eclipse中使用Jetty 在...

Global site tag (gtag.js) - Google Analytics