ant使用初步

下载:

1),apache网站,http://ant.apache.org/

2),最新的ant下载地址,http://ant.apache.org/bindownload.cgi

3),点击超链下载,apache-ant-1.9.0-bin.zip

解压缩

设置环境变量

ANT_HOME D:\javaSoft\apache-ant-1.9.0(这是ant解压目录

Path ;D:\javaSoft\apache-ant-1.9.0\bin(注意和前面分隔的分号;加在最后)

Cmd中输入ant 显示Buildfilebuild.xml does not exist! Build failed 

输入ant -version 显示ant版本;

···

安装成功。

总:

Ant用于生成jar文件(自动打包和部署)

另:

Eclipse中使用ant自动部署实现我的项目后,保存ant为过去式转入maven

//

一个简单的使用ANT的例子

在 盘根目录下新建一个 build.xml 文件,文件的内容如下:

<?xml version="1.0" encoding="GBK"?>

<project name="测试脚本" default="copyfile" basedir="." >

   <target name="copyfile">

      <copy file="d:/a.txt" todir="e:/Temp" overwrite="true" />

   </target>

</project>

在 盘根目录下新建一个 a.txt 文件,内容随便。

进入DOS,依次执行:

  d: 
  ant

如同下面的截图:

 

执行完毕后,我们会在 e:/Temp 目录下看到 a.txt 文件,跟D盘根目录下的完全一样,即Copy成功。

参考文章:

ANT 的安装和配置

http://www.cnblogs.com/ghj1976/archive/2010/04/14/1711914.html

···

ANT初学入门之一:基本概念、安装与配置

http://www.cnitblog.com/intrl/archive/2009/04/12/56288.html

ANT专辑 一】ANTWeb项目中的应用--工具介绍

http://www.cnitblog.com/intrl/archive/2009/07/25/60358.html

···

ANT十五大最佳实践详解

http://www.cnitblog.com/intrl/archive/2009/04/12/56289.html

--------------------------------------------------------------

英文手册,manual;

常用功能

Jar/war 打包;

Javadoc/javadocs 生成文档;

Ant查找build.xml文件,根据配置文件执行任务;

示例Hello World with Apache Ant 

详见http://ant.apache.org/manual/index.html

建立类:(路径:D:\src)

package oata;

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Hello World");

    }

}

在d盘根目录下建立build.xml文件;(cmd-d:-ant运行)

//项目;---basedir根目录;name项目名称;default默认要执行的target;

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

//参数;

    <property name="src.dir"     value="src"/>

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

    <property name="classes.dir" value="${build.dir}/classes"/>

    <property name="jar.dir"     value="${build.dir}/jar"/>

    <property name="main-class"  value="oata.HelloWorld"/>

//清除已有文件;---target为操作任务;

    <target name="clean">

        <delete dir="${build.dir}"/>

    </target>

//创建文件、class---javac编译java文件为class文件;srcdir为需要编译的目录,destdir为编译后的存放目录;

    <target name="compile">

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

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

    </target>

//创建jar---jarfile表示生成的jar的文件,basedir表示class文件所在的目录

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

        <mkdir dir="${jar.dir}"/>

        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">

            <manifest>

                <attribute name="Main-Class" value="${main-class}"/>

            </manifest>

        </jar>

    </target>

//运行jar

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

        <java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>

    </target>

    <target name="clean-build" depends="clean,jar"/>

    <target name="main" depends="clean,run"/>

</project>

使用已存在的jar文件

1),d盘下新建lib文件夹,放入log4j.jar文件;

2),修改HelloWorld 类;

package oata;

import org.apache.log4j.Logger;

import org.apache.log4j.BasicConfigurator;

public class HelloWorld {

    static Logger logger = Logger.getLogger(HelloWorld.class);

    public static void main(String[] args) {

        BasicConfigurator.configure();

        logger.info("Hello World");          // the old SysO-statement

    }

}

3),修改build.xml

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

    ...

    <property name="lib.dir"     value="lib"/>

    <path id="classpath">

        <fileset dir="${lib.dir}" includes="**/*.jar"/>

    </path>

    ...

    <target name="compile">

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

        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>

    </target>

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

        <java fork="true" classname="${main-class}">

            <classpath>

                <path refid="classpath"/>

                <path location="${jar.dir}/${ant.project.name}.jar"/>

            </classpath>

        </java>

    </target>

    ...

</project>

运行,run给出的输出是:

[java] 0 [main] INFO oata.HelloWorld  - Hello World

拷贝已存在的文件

    ...

    <target name="compile">

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

        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>

        <copy todir="${classes.dir}">

            <fileset dir="${src.dir}" excludes="**/*.java"/>

        </copy>

    </target>

...

//todir拷贝到的目标路径;dir被拷贝的原文件路径;excludes除什么而外的文件;

-------------------------------------------

一些概念

<mkdir>标签

该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名,其代码如下:

<mkdir dir=${class.root}/>

/

Eclipse中使用

通过ant自动部署项目到tomcat下;

参考文章:

http://www.cnblogs.com/Mainz/archive/2012/04/14/2447786.html

Eclipse添加ant

建立build.xml文件;

-------------------------------------------

Myeclipse使用ant

1),已有项目;

2),项目根目录下建立build.xml文件;

3),window-preferences-antruntimeant Home,选取本地已安装的ant路径,applyok

~

项目,右键,属性,单击builders

单击java builder,点击new 按钮,选中Ant Builder ,ok

~

在 edit launch configuration...窗体,name中填写一个自定义名称;

buildfile点击Browse Workspace..

在弹出的choose location中,点选左边的项目,右边的build.xmlok

完成配置;

运行build

Build.xml右键,run asant build

build.xml内容

据需要自己写内容;

···

配置:

<project default="deploy" basedir="." name="cas1">

//声明参数

 <!--web应用的上下文-->

 <property name="antProjectName" value="cas1"/>

 <!--tomcat的webapps的路径-->

 <property name="dest-dir" value="D:\apache-tomcat-7.0.8\webapps"/>

 

//先删除已有的文件

 <target name="init">

  <delete dir="${dest-dir}/${antProjectName}"/>

  <delete file="${dest-dir}/${antProjectName}.war"/>

 </target>

 <!--copy WebRoot下的文件到指定目录下 | exclude例外-->

 <target name="copyfile"  depends="init">

  <copy todir="${dest-dir}/${antProjectName}">

   <fileset dir="${basedir}/WebRoot">

    <include name="**" />

    <exclude name="**/portlet-api_2.0_spec-1.0.jar"/>

   </fileset>

  </copy>

 </target>

 <!--copy WebRoot下的文件到指定目录下,并生成.war文件-->

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

  <war destfile="${dest-dir}/${antProjectName}.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml">

   <fileset dir="${basedir}/WebRoot">

    <include name="**" />

    <exclude name="**/portlet-api_2.0_spec-1.0.jar"/>

   </fileset>

  </war>

 </target>

//统一调用要执行的target---放在最后位置;

<target name="deploy" depends="copyfile,war,jar"/>

-------------------------------------------------

//src,项目根目录下的src文件夹;build,项目根目录下的build文件夹;

<property name="src.dir"     value="src"/>

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

    <property name="classes.dir" value="${build.dir}/classes"/>

<property name="jar.dir"     value="${build.dir}/jar"/>

//创建一个目录文件夹,将项目src下的内容生成其中;

<target name="compile">

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

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

    </target>

//创建一个目录文件夹,将上面生成的{build.dir}/classes下的内容生成其中,生成为jar文件;

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

        <mkdir dir="${jar.dir}"/>

        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">

        </jar>

    </target>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值