您的位置:首页 > 其它

Ant学习--简单实例入门

2014-11-05 11:03 369 查看
步骤1、创建工程文件夹名字

F:\Helloworld

步骤2、编写java代码;

package com.netease;

public class Ant_test {

public static  void  main(String []args){
System.out.println("测试ant用法!!!");
System.out.println("测试ant用法!!!");

Antbean bean = new Antbean();
bean.print();
}

}
package com.netease;

public class Antbean {

public void print(){
System.out.println("Ant_test类调用了我,我的名字叫做Antbean");
System.out.println("Ant_test类调用了我,我的名字叫做Antbean");
System.out.println("Ant_test类调用了我,我的名字叫做Antbean");
}
}


步骤3、在F:\Helloworld创建src/com/netease/目录,将编写的java类文件放在此处

步骤4、编写build.xml文件,放在和src的同级目录,即项目根目录下。

<?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}" includeantruntime="on"/>
</target>

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

<target name="run"    depends="build">
<java classname="com.netease.Ant_test"    classpath="${hello_jar}"/>
</target>

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

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

</project>


步骤5、进入cmd控制台运行ant命令

(1)一次执行:输入ant,配置的默认执行run任务。

由于依赖关系,依次执行以下任务:init(初始化,如创建目录)、compile(编译java文件为class字节码文件)、build(创建jar包)、run(运行程序);

(2)分步执行:ant init、ant compile、ant build、ant run



附加规范目录结构、简单目录结构:

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

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

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

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

<target name="run"    depends="build">
<java classname="com.netease.Ant_test"    classpath="${hello_jar}"/>
<java classname="com.netease.Ant_test"   classpath="${lib}/${hello_jar}"/>
</target>

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

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

</project>


总结Ant(下面引用的例子没有设置property变量引用)

一、 Ant的常用任务

在Ant工具中每一个任务封装了具体要执行的功能,是Ant工具的基本执行单位。在本小节中,主要引导读者来看下Ant的常用任务及其使用举例。

1. copy任务

该任务主要用来对文件和目录的复制功能。举例如下:

Eg1.复制单个文件:<copy file="file.txt" tofile="copy.txt"/>

Eg2.对文件目录进行复制:

<copy todir="../newdir/dest_dir">

<fileset dir="src_dir"/>

</copy>

Eg3. 将文件复制到另外的目录:

<copy file="file.txt" todir="../other/dir"/>

2. delete任务

对文件或目录进行删除,举例如下:

Eg1. 删除某个文件:<delete file="photo/amigo.jpg"/>

Eg2. 删除某个目录:<delete dir="photo"/>

Eg3. 删除所有的备份目录或空目录:

<delete includeEmptyDirs="true">

<fileset dir="." includes="**/*.bak"/>

</delete>

3. mkdir任务

创建目录。eg:<mkdir dir="build"/>

4. move任务

移动文件或目录,举例如下:

Eg1. 移动单个文件:<move file="fromfile" tofile=”tofile”/>

Eg2. 移动单个文件到另一个目录:<move file="fromfile" todir=”movedir”/>

Eg3. 移动某个目录到另一个目录:

<move todir="newdir">

<fileset dir="olddir"/>

</move>

5. echo任务

该任务的作用是根据日志或监控器的级别输出信息。它包括message、file、append和level四个属性,举例如下:

<echo message="Hello,Amigo" file="logs/system.log" append="true">

6、javac 编译任务

7、java运行java程序任务

8、jar打包任务

二、利用Ant构建和部署Java工程

Ant可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的。下面来看几个知识点。

1. 利用Ant的javac任务来编译java程序

Ant的javac任务用于实现编译Java程序的功能。下面来看一个简单的例子:

首先我们建立名为antstudy的Java工程,建立src目录为源代码目录,在src目录下建立HelloWorld.java这个类文件。该类文件的内容如下:

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello,Amigo");

}

}

同时在antstudy工程的根目录下建立build.xml文件,在该文件中编译src目录下的java文件,并将编译后的class文件放入build/classes目录中,在编译前,需清除classes目录,该文件的内容如下:

<?xml version="1.0"?>

<project name="javacTest"default="compile" basedir=".">

<target name="clean">

<delete dir="build"/>

</target>

<target name="compile" depends="clean">

<mkdir dir="build/classes"/>

<javac srcdir="src" destdir="build/classes"/>

</target>

</project>

运行该build.xml文件,可在工程中看到新增了build/classes目录,并在该目录中生成了编译后的HelloWorld.class文件。

2. 使用Ant的java任务运行Java程序

Ant中可以使用java任务实现运行Java程序的功能。下面在1的例子中进行如下的修改,修改后的build.xml文件的内容如下:

<?xml version="1.0"?>

<project name="javaTest" default="jar" basedir=".">

<target name="clean">

<delete dir="build"/>

</target>

<target name="compile" depends="clean">

<mkdir dir="build/classes"/>

<javac srcdir="src" destdir="build/classes"/>

</target>

<target name="run" depends="compile">

<java classname="HelloWorld">

<classpath>

<pathelement path="build/classes"/>

</classpath>

</java>

</target>

</project>

运行该build.xml文件,可在控制台看到HelloWorld的main方法的输出。

3. 使用Ant的jar任务生成jar文件

读者可以在上例的基础上更进一步,来生成jar包,可在run这个target下再加上如下target:

<target name="jar" depends="run">

<jar destfile="helloworld.jar" basedir="build/classes">

<manifest>

<attribute name="Main-class" value="HelloWorld"/>

</manifest>

</jar>

</target>

此时将ant的project的default属性设置为jar,同时运行该build.xml文件,运行完毕后,可看到在工程目录下生成了一个jar包HelloWorld.jar。

4. 使用Ant的war任务打包J2EE
Web项目


建立一个J2EE Web工程,其目录结构如下图所示:

其中src为源代码目录,WebRoot为各jsp存放目录,lib为工程的包目录。在antwebproject工程目录下建立了build.xml文件,该文件为该工程的Ant构件文件。读者可以src目录下放入在前续例子中开发的HelloWorld.java文件,并在WebRoot下建立index.jsp文件,其内容很简单,就是输出Hello信息,代码如下所示:

<%@ page language="java" contentType="text/html; charset="UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>ant打包测试</title>

</head>

<body>

Hello,Ant

</body>

</html>

接下来编写build.xml文件,其内容如下:

<?xml version="1.0"?>

<project name="antwebproject" default="war"basedir=".">

<property name="classes" value="build/classes"/>

<property name="build"value="build"/>

<property name="lib"value="WebRoot/WEB-INF/lib"/>

<!-- 删除build路径-->

<target name="clean">

<delete dir="build"/>

</target>

<!-- 建立build/classes路径,并编译class文件到build/classes路径下-->

<target name="compile" depends="clean">

<mkdir dir="${classes}"/>

<javac srcdir="src" destdir="${classes}"/>

</target>

<!-- 打war包-->

<target name="war" depends="compile">

<war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">

<!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹-->

<fileset dir="WebRoot" includes="**/*.jsp"/>

<!-- 拷贝lib目录下的jar包-->

<lib dir="${lib}"/>

<!-- 拷贝build/classes下的class文件-->

<classesdir="${classes}"/>

</war>

</target>

</project>

各target的作用在内容中已经进行说明,在此不再赘述。运行该build文件,更新目录后,可看到在build目录下生成了antwebproject.war文件,解开后可看到其目录结构如下:

--META-INF

--MANIFEST.MF

--index.jsp

--WEB-INF

--lib

--log4j-1.2.9.jar

--classes

--HelloWorld.class

--web.xml

读者可以将该war包拷贝到Tomcat的目录下看一下运行结果。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: