使用Ant实现构建和部署

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:zwf1979
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:介绍在基于WSL开发过程中,如何使用ANT工具开发脚本来自动构建和部署应用程序,从而帮助团队实现开发J2EE大型项目的编译部署工作自动化和规范化。
  关键词:Ant;部署;XML
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)23-00721-03
  Using Ant To Achieve Building and Deployment
  ZHOU Hong
  (Topsthink Software Company, Fuzhou 350003, China)
  Abstract: This paper introduced that how to use the ANT to automatically build and deploy applications in the development process Based on WSL, and helping the team who develop large-scale J2EE projects to achieve compiler and deployment of automated and standardized.
  Key words: ANT; deploy; XML
  1 引言
  做为一个J2EE项目的测试人员,当项目开发的规模越来越大,越来越繁重时,每次都重新编译,打包,测试,部署等一些操作都变得非常复杂而重复。虽然有IDE编程开发工具可以实现这些操作,但每次开启jbuilder这样的工具实在费时。
  而Ant正是这样一个令构建工作变得简单的工具,您不用不断的使用javac、copy、cd、 java指令来达成这些目的,只要撰写好构建文件(buildfile),一个以XML组织的文件档案,之后,最简单的情况下,您只要下达ant指令,所有的一切就可以完成。
  Ant是Apache的Jakarta项目的一部分,它集成了java、javac、JAR、WAR和其他一些Java任务。它也支持多种文件系统任务,获得了操作系统无关性。在Windows下编写的脚本也可以在Solaris下工作得很好。
  2 ANT工具的安装
  如果是基于WSL开发,只要客户端安装了bea weblogic platform就有ant工具了,将它的路径“C:\bea\weblogic81\server\bin”写到环境变量path里,就可以在cmd窗口里直接执行了。
  ANT的安装也可以从Apache的网站下载:http://ant.apache.org,目前最新的版本是ANT1.6.2。当然你的机子首先已经安装上了JDK,并且设置了JAVA_HOME等这些纯Java的设置了。然后再设置ant的环境变量。
  3 Ant的运行
  没有指定任何参数时,Ant会在当前目录下查询build.xml文件。如果找到了就用该文件作为buildfile。如果你用 -find 选项。Ant就会在上级目录中寻找buildfile,直至到达文件系统的根。要想让Ant使用其他的buildfile,可以用参数 -buildfile file,这里file指定了你想使用的buildfile。你可以用Ant -help命令查看ant运行各项参数说明。
  可以指定执行一个或多个target。当省略target时,Ant使用标签的default属性所指定的target。
  4 Ant的构建文件的开发
  当开始一个新的项目时,首先应该编写Ant构建文件。构建文件定义了构建过程,并被团队开发中每个人使用。Ant构建文件默认命名为build.xml,也可以取其他的名字。只不过在运行的时候把这个命名当作参数传给Ant。构建文件可以放在任何的位置。
  Ant构建文件是XML文件。每个构建文件定义一个唯一的项目(Project元素)。每个项目下可以定义很多目标(target元素),这些目标之间可以有依赖关系。当执行这类目标时,需要执行他们所依赖的目标。
  下面是一个示例。
  <?xml version="1.0"?>
  <project name="trMytest" default="Mytest" basedir=".">
  <property name="src" value="src/trMytest"/>
  <property name="build" value="classes"/>
  <property name="lib" value="lib"/>
  <property name="jarname" value="ejbMytest.jar"/>
  <property name="warname" value="trMytest.war"/>
  <property name="earname" value="earMytest.ear"/>
  <property name="appname" value="earMytest"/>
  <property name="web_inf" value="DEFAULTROOT/WEB-INF"/>
  <property name="meta_inf" value="META-INF"/>
  <property name="app" value="../../app"/>
  <property file="../../config.properties"/>
  <target name="init" depends="clean">
  <mkdir dir="${build}"/>
  <mkdir dir="${lib}"/>
  </target>
  <target name="clean">
  <delete dir="${build}"/>
  <delete dir="${lib}"/>
  <delete file="${jarname}"/>
  <delete file="${warname}"/>
  <delete file="${earname}"/>
  </target>
  <target name="compile" depends="init">
  <javac srcdir="${src}" destdir="${build}">
   <classpath>
  <pathelement location="${mainpath}/wwcom/wwcom.jar"/>
  <fileset dir="${mainpath}/add-packet">
   <include name="*.jar"/>
   </fileset>
  </classpath>
  </javac>
  </target>
  <target name="jar" depends="compile">
  <mkdir dir="${build}/META-INF"/>
  <copy todir="${build}/META-INF">
   <fileset dir="${meta_inf}"/>
   </copy>
  <jar jarfile="${jarname}" >
  <fileset dir="${build}"/>
  <fileset dir="${meta_inf}"/>
  </jar>
  </target>
  <target name="war" depends="compile">
  <war destfile="${warname}" webxml="${web_inf}/web.xml">
  <classes dir="${build}"/>
   </war>
  </target>
  <target name="ear" depends="war,jar">
  <ear destfile="${earname}" appxml="application.xml">
  <fileset dir="." includes="*.jar,*.war"/>
  </ear>
  <copy file="${earname}" todir="${app}"/>
  </target>
  <target name="deploy" depends="ear">
  <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.manage ment.WLDeploy"/>
  <wldeploy action="deploy"
  source="${earname}"
  name="${appname}"
  adminurl="${adminurl}"
  user="${username}"
  password="${password}"
  targets="${server}"
   upload="true"
  debug="true"/>
  </target>
  <target name="Mytest" depends="deploy"/>
  </project>
  示例中引用了一个属性文件config.properties,是用来描述开发环境的信息的。config.properties编写示例如下:
  mainpath=D:/webback/app
  adminurl=t3://localhost:7001
  server=myserver
  username=weblogic
  password=weblogic
  将上述两个文件放在同级目录下,在该目录中运行ant,就可以自动完成Mytest的编译、打包和部署。当然你也可以只运行一个target,如:ant deploy,只完成部署。
  5 让大型应用的部署变得容易
  如果一次将所有的组件都部署该怎么做?分开运行每个build.xml脚本文件很麻烦。我们可以为应用创建一个运行所有Ant构建脚本的Ant构建脚本。这个脚本将应用中所有的脚本组合在一起。我们定义一个all目标,他本身没用具体功能,只是调用所有的依赖。主构建脚本一般放在源程序的根目录下。进入那个根目录运行"ant"命令,整个项目的所有组件都会被部署。
  6 结束语
  此文介绍了如何使用Ant来构建和部署WAR、EJB和EAR文件到WLS上,以及如何使用一个主构建脚本来管理您的项目。建议对于每个EJB都将JAR文件的编译和构建放到一个单独的build.xml中,公共部分可以移动到主构建脚本中。将这些构建脚本集成到项目版本控制系统中,同源代码一样被受控,这对项目管理是非常的益的。
  参考文献:
  [1](美)海特.使用Ant进行Java开发[M].北京:电子工业出版社,2005.
  [2](美)Mark Artiges. BEA WebLogic Server 8.1大全[M].袁毅,译.北京:机械工业出版社,2005.
其他文献
摘要:互联网的迅速发展,使如何采集和利用Web信息越来越受关注。该文提出了基于Web的信息采集系统的设计方案,并利用.Net技术与数据库技术,实现了对特定网站信息的采集与处理。  关键词:信息检索;正则表达式;ADO.NET  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)16-21263-02  Design and Implementation of Inform
形式迁移写话教学模式是施茂枝教授“基于小学牛心理特点的写作教学序列与模式”中系列教学模式之一。其教学目标具体,评价标准明确,教学步骤清晰,教学策略可操作性强,是读写结合的典型样式。《为什么?》所提供的言语范式是教师“着意下水”的一首儿歌,是教师根据教学需要而精心写成的独特文本,在它和统编教材二年级下册第六单元写话例句主题的联合触发下,运用本模式引导学生写话,既可引导学生产生探索自然科学的兴趣和热爱
摘要:对现有的Apriori算法进行改进,用分治策略引入哈希技术的方法完成了压缩侯选集,减少频繁扫描数据库的次数,克服了原有关联规则的数据挖掘算法生成频繁集比较大,且需要反复扫描数据库的问题。  关键词:Web数据挖掘;网站个性化信息推荐;关联规则  中图分类号:TP301文献标识码:A文章编号:1009-3044(2008)24-1265-02  A Personalized Informati
摘要:杨慎是明代词人中首屈一指的人物,他的词集《升庵长短句》对我们今天了解明词,了解杨慎本人有着重要的意义。以典入词,是杨慎创作的一大特色,本文粗略地对杨慎在词作中使用的部分典故进行了经、史、子、集四大部类的梳理,以期对杨慎词作的用典特色加以分析。  关键词:杨慎 《升庵长短句》 以典入词  杨慎一生著作宏富,现存著述约两百余种,内容涵盖经、史、子、集。《明史》卷一九二载杨慎“明世记诵之博、著作之
只要白天还有一碗饭吃,夜晚还有地方睡觉,就想画画,就想用画笔去抒发自己的思想情感,去表现大自然的美妙,这就是画家,甚至可能成为大画家。画画并非出于自愿而是为了养家糊口的人,不是画家而是画工。一味地模仿跟风,一辈子都画不出自己的东西来,也不能算作画家,最多算个画匠。  传统是艺术家的根与魂,不向优秀传统学习,艺术将是无根之木、无源之水。创新是艺术家的天职,是生命的艺术,是艺术家吸取古今中外艺术精华,
摘要:proteus已成为电子技术人员常用的工具软件,本文介绍了自己创建proteus原理图库和PCB封装库的方法和步骤,方便了设计人员用proteus设计原理图和印刷线路板图  关键词:proteus;原理图库;PCB库  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)06-10000-00    A way probing to creat my own sch
【摘要】统编教材中的“语文园地”已经走出读读背背、抄抄写写的“积累识记”传统编写套路,走上“语用实践”的崭新道路。因此,在“语文园地”教学中,教师要从单元整体出发,针对丰富的语言现象,搭建多维的语用支架,从语文知识教学走向语用教学,将“基础练习课”上成“语用实践课”,让学生不仅能够学习“语文知识”,更能做到“语文知识运用”。  【关键词】语文园地,基础练习,语用实践  无论是“大纲版”还是“课标版
摘要:结合最小表达式的概念详细论述了表达式的值的求解方法,并通过几个典型实例剖析了C语言表达式的值的具体应用及分析方法。  关键词:C语言;运算符;表达式  中图分类号:TP312文献标识码:A文章编号:1009-3044(2008)23-965-01  Expression and Its Value of C Language  LIU Yu-li  (Electron Department,
摘要:基于WEB模式设计出题题库和在线考试系统,具有自定义比重出题,实现在线限时答题,真正实现无纸测试,考生在取得考试资格后在规定比赛时间内答题,并在比赛结束后给出详细的获奖名单。  关键词:限时答题;C#;JAVA Script;Access  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)17-21559-02     1 引言    商业类考试系统主要起到一个宣
摘要:本文介绍了路由器、交换机模拟程序Boson NetSim软件的安装与应用,给广大因实训条件的不足,无法开展相关实训的学习者提供一个实验平台,提高他们的学习效率。  关键词:网络实训;Boson NetSim;路由器;交换机的配置  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)08-11ppp-0c    1 引言    计算机网络技术是计算机网络专业的核心课程