现在的位置: 首页 > 综合 > 正文

使用Ant对程序进行编译打包

2014年02月28日 ⁄ 综合 ⁄ 共 3114字 ⁄ 字号 评论关闭

因为项目中使用到了Ant,但是对这个不太了解,所以在网上搜了下资料,根据文档在本地写了个HelloWorld做了下测试。

首先必须要有Ant环境,好像值需要解压就行了。然后设置下环境变量,环境变量的设置与Java类似,这里不在啰嗦。设置完成

后,进入dos界面,键入ant,显示下面的界面即说明Ant环境添加成功:

在E盘下建立一个Demo文件夹,主要有如下几个文件需要自己编写:

1.新建一个src文件加,在src中添加一个HelloWorld.java文件:

package test.ant;
public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello,World");
    }
}

2.新建一个build.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<project name="HelloWorld" default="run" basedir=".">
    <property name="src" value="src"/>
    <property name="dest" value="classes"/>
    <property name="hello_jar" value="hello.jar"/>

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

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

    <target name="jar" depends="compile">
        <jar jarfile="${hello_jar}" basedir="${dest}"/>
    </target>

    <target name="run" depends="jar">
        <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
    </target>

    <target name="clean">
        <delete dir="${dest}"/>
        <delete file="${hello_jar}"/>
    </target>

    <target name="rerun" depends="clean,run">
        <ant target="clean"/>
        <ant target="run"/>
    </target>
</project>

添加完成之后,进入Dos界面,然后进入到E盘的demo文件夹下,输入ant命令即可完成对HelloWorld程序的编译,并生成一个hello.jar包。

***********************************************************************************************************************************************************

***********************************************************************************************************************************************************

下面介绍下build.xml文件中的配置:

<project name="HelloWorld" default="run" basedir=".">

</project>

Ant的所有内容必须包含在这个里面,name是我们给它取得名字

basedir是工作的根目录,其中的"."代表当前目录

default代表默认要做的事

=================================================================

<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="hello_jar" value="hello.jar"/>

类似程序中的变量

=================================================================

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

目的:创建一个文件夹

把我们想做的每一件事情写成一个target,他有一个名字,使用mkdir来创建文件夹。

将第一个target命名为init,其他的target依赖这个初始化target。

=================================================================

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

目的:编译程序,把源程序编译到目标地点

depends是它所依赖的target,在执行这个compile的target之前,ant会先检查init是否已经

被执行过,如果执行过,则直接执行compile,如果没有执行过,就会执行它依赖的target,

然后再执行本身的target。

=================================================================

<target name="jar" depends="compile">
        <jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>

目的:打jar包

=================================================================

<target name="run" depends="jar">
        <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>

目的:运行jar包内的程序

=================================================================

<target name="clean">
        <delete dir="${dest}"/>
        <delete file="${hello_jar}"/>
</target>

目的:删除生成的文件

=================================================================

<target name="rerun" depends="clean,run">
        <ant target="clean"/>
        <ant target="run"/>
</target>

目的:再次运行,这里显示了如果在一个target里边调用其他的target




抱歉!评论已关闭.