首页 > 代码库 > 一个简单的ant应用
一个简单的ant应用
<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?> <project name="hd_services" default="war" basedir="."> <property name="tomcat.home" value="http://www.mamicode.com/E:/r/apache-tomcat-7" /> <property name="hd.src" value="http://www.mamicode.com/src" /> <property name="hd.classes" value="http://www.mamicode.com/build/classes" /> <property name="hd.build" value="http://www.mamicode.com/build" /> <property name="hd.lib" value="http://www.mamicode.com/WebContent/WEB-INF/lib" /> <target name="clean"> <delete dir="${hd.build}" /> </target> <path id="lib.path"> <fileset dir="${hd.lib}"> <include name="**/*.jar" /> </fileset> </path> <target name="compile" depends="clean"> <mkdir dir="${hd.classes}" /> <javac srcdir="src" destdir="${hd.classes}" includeantruntime="no" classpathref="http://www.mamicode.com/lib.path"> <exclude name="tests/**/*.java" /> <!--<include name="**/*.java" />--> </javac> <copy todir="${hd.classes}"> <fileset dir="src"> <include name="config/**/*.properties" /> <include name="config/**/*.xml" /> </fileset> </copy> </target> <target name="war" depends="compile"> <war destfile="${hd.build}/hd_services.war" webxml="WebContent/WEB-INF/web.xml"> <fileset dir="WebContent" includes="**/*.jsp" /> <lib dir="${hd.lib}" /> <classes dir="${hd.classes}" /> </war> </target> <target name="deploy" depends="war"> <copy todir="${tomcat.home}/webapps"> <fileset dir="${hd.build}"> <filename name="*.war"/> </fileset> </copy> </target> </project>
<?xml version="1.0" encoding="UTF-8"?> <!-- 定义一些变量,就好比在java中定义一些变量,以备以下使用 --> <!-- 所在项目的位置,。代表项目下,。。
项目的子包下 --> <project name="helloworld" basedir="."> <!-- 定义一个属性变量 用作指定项目的原文件所在的文件夹 "${basedir} =basedir="."--> <property name="src.dir" value="http://www.mamicode.com/${basedir}/src"/> <!-- 环境变量 --> <property environment="env"/> <property name="jboss.home" value="http://www.mamicode.com/${env.JBOSS_HOME}"/> <property name="jboss.server.config" value="http://www.mamicode.com/default"/> <!-- 编译 class 存放的文件夹 --> <property name="build.dir" value="http://www.mamicode.com/${basedir}/build"/> <!-- 引入的jar包 --> <path id="build.classpath"> <fileset dir="${jboss.home}\client"> <include name="*.jar"/> </fileset> <!-- 把自已的 jar文件也引入 --> <pathelement location="${build.dir}"/> </path> <!-- 创建一个文件夹 --> <target name="prepare"> <delete dir="${build.dir}"/> <mkdir dir="${build.dir}"/> </target> <!-- 编译 --> <target name="compile" depends="prepare" description="编译"> <javac srcdir="${src.dir}" destdir="${build.dir}" includeantruntime="on"> <classpath refid="build.classpath"/> </javac> </target> <target name="ejbjar" depends="compile" description="创建ejb公布包"> <jar jarfile="${basedir}\${ant.project.name}.jar"> <fileset dir="${build.dir}"> <include name="**/*.class"/> </fileset> </jar> </target> <!-- 依懒于ejbjar 把编译好的class复制到jboss公布文件夹下--> <target name="deploy" depends="ejbjar" description="公布ejb"> <copy file="${basedir}\${ant.project.name}.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy"/> </target> <target name="undeploy" description="御载ejb"> <delete file="${jboss.home}\server\${jboss.server.config}\deploy\${ant.project.name}.jar"/> </target> </project>
构建文件定义了构建过程。并被团队开发 中每一个人使用。
Ant构建文件默认名为build.xml,也能够取其它的名字。
仅仅只是在执行的时候 把这个命名当作參数传给Ant。构建文件能够放在不论什么的位置。
一般做法是放在项目顶层文件夹中。
这样能够保持项目的简洁和清晰。以下是一个典型的项目层次结构。
每一个目标中能够定义多个任务。目标中还定义了所要运行的任务序列。Ant在构建目标时必须调 用所定义的任务。任务定义了Ant实际运行的命令。Ant中的任务能够为3类。
核心任务是Ant自带的任务。
可选任务是来自第三方的任务,因此须要一个附加的JAR文件。
4标签编辑
一个target标签能够依赖其它的target标签。
例 如,有一个target用于编译程序,还有一个target用于生成可运行文件。在生成可运行文件之前必须先编译该文件,因此可运行文件的target依赖于编译程序的target。Target的全部属性例如以下。
假设没有if或unless属性target总 会被运行。
5数据类型编辑
<patternset>支持4个属性:includesexcludex includexfile 和excludesfile,与fileset相 同。
Patternset 还同意下面嵌套元素:include,exclude,includefile 和excludesfile.
一个简单的ant应用