【Ant】Ant学习--简单实例入门

步骤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>
  1. 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的目录下看一下运行结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值