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

2016-02-19 14:01 7 1 收藏

下面是个简单易学的在Eclipse中使用ANT灵活构建Web应用教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

前言
  
  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
  
  

来源:http://www.tulaoshi.com/n/20160219/1605983.html

延伸阅读
标签: Web开发
在浏览器中显示信息
现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。 1.Win32 DLL  在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或...
标签: PHP
  PHP包含支持Expat 解析器的可选XML扩展。PHP中的XML相关函数可以让你创建一个解析器来处理有效的XML文档。如果你所使用的Apache版本为1.3.7后的版本,则不用添加任何函数库。所需要做的只是使用--with-xml配置PHP。 在PHP手册中有好几个创建基于PHP的XML解析器很好的例子。此外,New Riders的Web Application Development with PHP 4....
在开发ACCESS应用程序时,一般需要在窗体和模块中引用许多变量。为管理这些变量,当然可以在启动窗体中使用Microsoft Visual Basic for Application(VBA)来设置它们的值,然后再调用某个模块,由该模块初始化这些值。 然而,在完成应用程序开发之后,使用这个方法的问题出现了:其他人可能需要在将来某个时候改变那些值,却不知道...
标签: word
在Word2003中使用“Web版式”视图和“大纲”视图   Word2003中的Web版式视图专为浏览和编辑Web网页而设计,它能够模仿Web浏览器来显示Word文档。在Web版式视图方式下,用户可以看到背景和为适应窗口而换行显示的文本,且图形位置与在Web浏览器中的位置一致,如图1所示。 图1 Web 版式视图 Word2003中的大纲视图模式主要...

经验教程

819

收藏

76
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部