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

转载 2005年03月02日 22:33:00
前言

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

  本人使用eclipse3.0.1,以前的构建和发布工作都由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文件哟。           

相关文章推荐

写了个在window平台上自动发布eclipse 的web应用ant 程序(纯属学习)实用性不强

写了个在window平台上自动发布eclipse 的web应用ant 程序(纯属学习)实用性不强,不喜勿拍砖!

使用Selenium/Ant做Web应用远程自动化测试

Client端主要是通过一个ant build文件来启动JUnit的TestCase的,进而启动TestCase中的test方法,连接并激活server端进行自动化测试。Client端核心测试单元的代...
  • zm_21
  • zm_21
  • 2014-06-03 16:30
  • 1271

使用Ant发布web应用到tomcat

使用Ant发布web应用到tomcat          今天在公司用ant写了个部署web应用的脚本,闲来无事,就稍微总结一下,以供以后参照使用,也希望作为一个demo, 能对大家有启迪的作用,如...

eclipse环境下使用runjetty配置jndi数据源开发web应用

eclipse环境下使用runjetty配置jndi数据源开发web应用 1、安装runjetty http://code.google.com/p/run-jetty-run/ 2、在web工程...
  • xxjin
  • xxjin
  • 2013-12-03 17:20
  • 1413

使用eclipse开发Java web应用

使用eclipse开发Java web应用
  • jhope
  • jhope
  • 2017-04-09 16:16
  • 464

ant工具管理web应用

  • 2010-10-12 22:07
  • 10.33MB
  • 下载

用ANT工具管理Struts等Web应用

1.       Ant是apache的一个开源代码项目,它是一个优秀的软件工程管理工具。ANT本身用java语言实现,并且使用xml格式的配置文件来构建工程,可以很方便地实现多平台编译,非常适合管...

ANT工具管理struts等web应用

app.home-----------+ --Web应用项目的顶层目录 +---...

SVN+ANT实现远程Java WEB应用的更新

通过SVN+ANT实现远程Java WEB应用的程序更新。   罗嗦一下,现在的情况是这样的,对于我们的一些客户,我的应用是部署到他们的服务器上的,而我不能远程桌面到他们的服务器进行程序的更新,同...

用Ant工具管理Web应用

一.  安装配置Ant:下载地址为http://jakarta.apache.org,假设解压Ant的目录为,接下来需在操作系统中设置如下环境变量:   1.  ANT_HOME:ant的安装目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)