当前位置:  编程技术>java/j2ee

Eclipse中使用ANT

    来源: 互联网  发布时间:2014-10-15

    本文导语:  前言   ant是java开发者工具箱的重要一环,junit,xdoclet等都与它紧密关联,程序员可能习惯了IDE提供的自动构建,甚至部署的功能,从而忽略了ant本身,其实,主流的IDE通常是内置ant任务来完成这些工作的,熟悉ant内在的机理...

前言

  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-INFclasses下,另外,你的web文件夹下,事先得放好web.xml,以及一些tld文件哟。

    
 
 

您可能感兴趣的文章:

  • LINUX下使用Eclipse,如何使用交叉编译器?
  • ubuntu9.1下eclipse能使用吗?
  • 如何在eclipse中使用断点来调试程序
  • 在OpenSolaris上可以使用Eclipse 吗?
  • ubuntu上使用eclipse非常卡,不知为什么
  • 求Eclipse的使用方法的中文电子文档
  • Eclipse下使用ANT编译提示OutOfMemory的解决方法
  • 求redhat linux 9.0下可以使用的oracle 10g或9i,还有redhat linux 9.0下可以使用的eclipse下载地址
  • Eclipse 的 Maven 插件 m2eclipse iis7站长之家
  • 在eclipse中如何使用ant
  • Eclipse 如何配置 使用GTK 开发C++代码?
  • 使用eclipse 加入arm-elf-gcc 或arm-linux-gcc 编译器为什么不好使
  • eclipse 使用cdt的问题
  • 关于linux环境下使用eclipse碰到的引用静态链接库的问题。。。。
  • Android Eclipse 注释模板的使用(图文说明)
  • 如何在Ubuntu64位下配置Eclipse以使用GTK编程?
  • Eclipse的PHP插件PHPEclipse安装和使用
  • Eclipse快捷键使用小结
  • 使用maven+eclipse搭建struts2开发环境
  • Ant4Eclipse
  • Eclipse的ANT运行插件 AntView
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 为什么我在http://www.eclipse.org下载了eclipse后,点击eclipse.exe却没有任何效果?
  • 原来在ubuntu装个了个eclipse,可以正常启动,后来又下了个支持php的eclipse...发现php的eclipse无法启动
  • 什么是eclipse,eclipse的意思解析
  • Eclipse配色插件 Eclipse Color Themes
  • Eclipse SOA工具平台 Eclipse STP
  • Eclipse的Fujaba建模插件 Fujaba4Eclipse
  • Eclipse 字体大小控制插件 eclipse-fonts
  • Sonar的Eclipse插件 Sonar4eclipse
  • Eclipse的HTML格式化插件 Eclipse Tidy
  • Eclipse 的 Maven 插件 m2eclipse
  • Eclipse的持续测试插件 CT-Eclipse
  • Eclipse内容导航视图框架 Eclipse CNF
  • Eclipse记事本插件 Eclipse Notepad Plugin
  • Eclipse的Mercurial插件 Mercurial Eclipse
  • Eclipse的Tomcat插件 Eclipse Mongrel
  • Eclipse的Maven集成插件 Eclipse IAM
  • Eclipse的PDF查看插件 Pdf4Eclipse
  • Eclipse的RMI开发插件 RMI Plugin for Eclipse
  • Eclipse面向方面建模插件 A2Eclipse
  • Eclipse可视化编辑器 Eclipse VE


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3