Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16494097
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:43:22

下载本文示例代码
  前言  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文件哟。   前言  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文件哟。 下载本文示例代码


在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用在Eclipse中使用ANT灵活构建Web应用
阅读(145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~