用ANT打包,怎么写build.xml文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用ANT打包,怎么写build.xml文件相关的知识,希望对你有一定的参考价值。

我有三个class文件,a.class、b.class、c.class要将它们打包在D:/myClass/目录下,我的build.xml文件应该怎么写?

参考技术A 1. Ant简介
Ant的全名是"Another Neat Tool",是一个用于简单或复杂Java工程的自动化构建、部署工具,它对于那些具有分布式开发团队或者相信通过频繁的构建来进行不间断集成的公司尤其有用。对于那些建立传统全Java应用程序以及那些使用html、JSP和Java servlets创建Web应用程序的公司来说,Ant极具价值。无论你的Java开发者使用什么操作系统、集成开发环境或者构建环境,Ant都可以将你的工程集合在一起,用于那些重要的构建。Ant也能够自动化并且同步文档部署,这通常发生在软件开发过程中的没有正式文档和文档比较混乱的部分。
2. Ant的主要标签及数据类型
Ant构建文件是一个xml文件,一般默认命名为build.xml,如果是web project,通常把构建文件放在顶层目录下,即和src文件夹并列。
一个Ant构建文件需要定义一个唯一的项目元素(project元素),还可以定义多个目标元素(target元素),各个目标元素之间可以有一定的依赖关系,如:
<target name="compile">
<target name="deploy" depends="compile">
如上,deploy依赖与compile,即:系统必须先compile完了,然后才能deploy。
下面简要介绍一下Ant的主要标签:
<project>标签
每个构建文件对应一个项目。<project>标签是构建文件的根标签。它可以有多个内在属性,其各个属性的含义分别如下:
(1) default表示默认的运行目标,这个属性是必须的。
(2) basedir表示项目的基准目录。
(3) name表示项目名。
(4) description表示项目的描述。
<target>标签
target的常用属性如下。
(1)name表示目标名称,这个属性是必须的。
(2)depends表示依赖的目标。
(3)if表示仅当属性设置时才执行。
(4)unless表示当属性没有设置时才执行。
(5)description表示项目的描述。
Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序依次执行每个target。在执行之前,首先需要执行它所依赖的target。
<mkdir>标签
该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名。
<jar>标签
该标签用来生成一个JAR文件,其属性如下。
(1) destfile表示要生成的JAR文件名。
(2) basedir表示被归档的文件名。
(3) includes表示需要归档的文件模式。
(4) exchudes表示被排除的文件模式。
<javac>标签
该标签用于编译一个或一组java文件,其属性如下。
(1)srcdir表示源程序的目录。
(2)destdir表示class文件的输出目录。
(3)include表示被编译的文件的模式。
(4)excludes表示被排除的文件的模式。
(5)classpath表示所使用的类路径。
(6)debug表示包含的调试信息。
(7)optimize表示是否使用优化。
(8)verbose 表示提供详细的输出信息。
(9)fileonerror表示当碰到错误就自动停止。
<java>标签
该标签用来执行编译生成的.class文件,其属性如下。
(1)classname 表示将执行的类名。
(2)jar表示包含该类的JAR文件名。
(3)classpath所表示用到的类路径。
(4)fork表示在一个新的虚拟机中运行该类。
(5)failonerror表示当出现错误时自动停止。
(6)output 表示输出文件。
(7)append表示追加或者覆盖默认文件。
<delete>标签
该标签用于删除一个文件或一组文件,其属性如下。
(1)file表示要删除的文件。
(2)dir表示要删除的目录。
(3)includeEmptyDirs 表示指定是否要删除空目录,默认值是删除。
(4)failonerror 表示指定当碰到错误是否停止,默认值是自动停止。
<copy>标签
该标签用于文件或文件集的拷贝,其属性如下。
(1)file 表示源文件。
(2)tofile 表示目标文件。
(3)todir 表示目标目录。
(4)overwrite 表示指定是否覆盖目标文件,默认值是不覆盖。
(5)includeEmptyDirs 表示制定是否拷贝空目录,默认值为拷贝。
(6)failonerror 表示指定如目标没有发现是否自动停止,默认值是停止。
如果我们部署一个 web应用的话,经常用到的标签有:delete,mkdir,copy,jar,target,project。
3. 使用Ant部署Web项目到tomcat
在项目下新建一个文件build.xml,内容如下:
<project name="javaee1" basedir=".">
<property name="webapp" value="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\javaee1" />
<target name="deploy">
<mkdir dir="$webapp"/>
<copy todir="$webapp" overwrite="true">
<fileset dir="$basedir/WebContent" />
</copy>
<mkdir dir="$webapp/WEB-INF/classes"/>
<copy todir="$webapp/WEB-INF/classes" overwrite="true">
<fileset dir="$basedir/build/classes" />
</copy>
</target>
</project>

利用ant build.xml打包一个project

项目结构如下:

build.xml

<project default="jar" name="test">
    <property name="src" value="src" />
    <property name="class" value="bin" />
    <property name="output" value="target" />
    <property name="jar" value="test.jar" />
    <property name="main" value="com.zh.tool.test" />

    <target name="init">
        <mkdir dir="${class}" />
        <mkdir dir="${output}" />
    </target>

    <target name="compile" depends="init">
        <javac srcdir="${src}" destdir="${class}">
        </javac>
    </target>

    <target name="jar" depends="compile">
        <jar destfile="${output}/${jar}" basedir="${class}">
            <manifest>
                <attribute name="Main-class" value="${main}" />
            </manifest>
        </jar>
    </target>
</project>

 

执行build.xml后的,刷新项目:

 

以上是关于用ANT打包,怎么写build.xml文件的主要内容,如果未能解决你的问题,请参考以下文章

怎么用ant 打jar包和war文件

Ant默认配置文件不是build.xml该如何编写命令进行编译打包

项目打包文件build.xml

用java或C#调用命令行对android工程进行编译、打包和签名,急求!!

ant编译build.xml文件

利用ant build.xml打包一个project