精华内容
下载资源
问答
  • Ant是什么

    2019-02-21 12:18:26
    Ant是什么
                   

    Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。

    既然我们已经有了make, gnumake, nmake, jam以及其他的build工具为什么还要要一种新的build工具呢?因为Ant的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。类似于make的工具本质上是基于shell(语言)的:他们计算依赖关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)。这就意味着你可以很容易地通过使用OS特有的或编写新的(命令)程序扩展该工具;然而,这也意味着你将自己限制在了特定的OS,或特定的OS类型上,如Unix。

    Makefile也很可恶。任何使用过他们的人都碰到过可恶的tab问题。Ant的原作者经常这样问自己:“是否我的命令不执行只是因为在我的tab前有一个空格?!!”。类似于jam的工具很好地处理了这类问题,但是(用户)必须记住和使用一种新的格式。

    Ant就不同了。与基于shell命令的扩展模式不同,Ant用Java的类来扩展。(用户)不必编写shell命令,配置文件是基于XML的,通过调用target树,就可执行各种task。每个task由实现了一个实现了特定Task接口的对象来运行。(如果你对Ant一点概念都没有的话,可能看不懂这一节,没有关系,后面会对target,task做详细的介绍。你如果没有太多的时间甚至可以略过这一节,然后再回来浏览一下这里的介绍,那时你就会看懂了。同样,如果你对make之类的工具不熟悉也没关系,下面的介绍根本不会用到make中的概念。)

    必须承认,这样做,在构造shell命令时会失去一些特有的表达能力。如`find . -name foo -exec rm {}`,但却给了你跨平台的能力-你可以在任何地方工作。如果你真的需要执行一些shell命令,Ant有一个<exec> task,这个task允许执行特定OS上的命令。

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • ant是什么

    2009-11-09 22:20:36
    ant是一个基于JAVA的自动化脚本引擎,脚本格式为XML。除了做JAVA编译相关任务外,ANT还可以通过插件实现很多应用的调用。 ANT的基本概念: ANT的安装:解包,设置路径 ANT的使用:最好的学习只不过是一个...
    内容摘要:
    ant是一个基于JAVA的自动化脚本引擎,脚本格式为XML。除了做JAVA编译相关任务外,ANT还可以通过插件实现很多应用的调用。


    ANT的基本概念:
    ANT的安装:解包,设置路径
    ANT的使用:最好的学习只不过是一个简单实用的例子起步……
    ANT的基本概念:Java的Makefile
    当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。


    每个ant脚本(缺省叫build.xml)中设置了一系列任务(target):比如对于一个一般的项目可能需要有以下任务。

    任务1:usage 打印本脚本的帮助信息(缺省)
    任务2:clean <-- init 清空初始化环境
    任务3:javadoc <-- build <-- init 生成JAVADOC
    任务4:jar <-- build <-- init 生成JAR
    任务5:all <-- jar + javadoc <-- build <-- init 完成以上所有任务:jar javadoc
    而多个任务之间往往又包含了一定了依赖关系:比如把整个应用打包任务(jar)的这个依赖于编译任务(build),而编译任务又依赖于整个环境初始化任务(init)等。

    注:我看到很多项目的ant脚本中的命名基本上都是一致的,比如:编译一般叫build或者compile;打包一般叫jar或war;生成文档一般命名为javadoc或javadocs;执行全部任务all。在每个任务的中,ANT会根据配置调用一些外部应用并配以相应参数执行。虽然ANT可调用的外部应用种类非常丰富,但其实最常用的就2,3个:比如javac javadoc jar等。
    ANT的安装
    解包后在系统可执行路径中加入指向ant的bin的路径就可以了,比如可以在GNU/Linux上把以下配置加入/etc/profile中:
    export ANT_HOME=/home/ant
    export JAVA_HOME=/usr/java/j2sdk1.4.1
    export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin

    这样执行ant 后,如果不指定配置文件ant会缺省找build.xml这个配置文件,并根据配置文件执行任务,缺省的任务设置可以指向最常用的任务,比如: build,或指向打印帮助信息:usage,告诉用户有那些脚本选项可以使用。


    ANT的使用

    最好的学习过程就是看懂那些open source项目中的build.xml脚本,然后根据自己的需要简化成一个更简单的,ANT和APACHE上很多非常工程派的项目:简单易用,而且适应性非常强,因为这些项目的建立往往来源于开发人员日常最直接的需求。
    以下是的一个WebLucene应用的例子:修改自JDOM的build.xml:

    <project default="usage" basedir=".">

    <!-- =================================================================== -->
    <!-- Initialization target -->
    <!-- =================================================================== -->
    <target name="init">
    <tstamp/>
    <property file="${basedir}/build.properties" />
    <property name="Name" value="ProjectFullName"/>
    <property name="name" value="project_name"/>
    <property name="version" value="0.2"/>
    <property name="year" value="2003"/>

    <echo message="----------- ${Name} ${version} [${year}] ------------"/>

    <property name="debug" value="off"/>
    <property name="optimize" value="on"/>
    <property name="deprecation" value="on"/>

    <property name="src.dir" value="./src/WEB-INF/src"/>
    <property name="lib.dir" value="./src/WEB-INF/lib"/>
    <property name="packages" value="com.chedong.*,org.apache.lucene.*"/>

    <property name="build.src" value="./src/WEB-INF/build"/>
    <property name="build.dest" value="./src/WEB-INF/classes"/>
    <property name="build.javadocs" value="./src/doc"/>

    <path id="classpath">
    <pathelement path="${jsdk_jar}"/>
    <fileset dir="${lib.dir}">
    <include name="**/*.jar"/>
    </fileset>
    </path>

    <filter token="year" value="${year}"/>
    <filter token="version" value="${version}"/>
    <filter token="date" value="${TODAY}"/>
    <filter token="log" value="true"/>
    <filter token="verbose" value="true"/>
    </target>

    <!-- =================================================================== -->
    <!-- Help on usage -->
    <!-- =================================================================== -->
    <target name="usage" depends="init">
    <echo message="${Name} Build file"/>
    <echo message="-------------------------------------------------------------"/>
    <echo message=""/>
    <echo message=" available targets are:"/>
    <echo message=""/>
    <echo message=" jar --> generates the ${name}.jar file"/>
    <echo message=" build --> compiles the source code"/>
    <echo message=" javadoc --> generates the API documentation"/>
    <echo message=" clean --> cleans up the directory"/>
    <echo message=""/>
    <echo message=" Please rename build.properties.default to build.properties"/>
    <echo message=" and edit build.properties to specify JSDK 2.3 classpath."/>
    <echo message=""/>
    <echo message=" See the comments inside the build.xml file for more details."/>
    <echo message="-------------------------------------------------------------"/>
    <echo message=""/>
    <echo message=""/>
    </target>

    <!-- =================================================================== -->
    <!-- Prepares the source code -->
    <!-- =================================================================== -->
    <target name="prepare-src" depends="init">
    <!-- create directories -->
    <mkdir dir="${build.src}"/>
    <mkdir dir="${build.dest}"/>

    <!-- copy src files -->
    <copy todir="${build.src}">
    <fileset dir="${src.dir}"/>
    </copy>
    </target>

    <!-- =================================================================== -->
    <!-- Compiles the source directory -->
    <!-- =================================================================== -->
    <target name="build" depends="prepare-src">
    <javac srcdir="${build.src}"
    destdir="${build.dest}"
    debug="${debug}"
    optimize="${optimize}">
    <classpath refid="classpath"/>
    </javac>
    </target>

    <!-- =================================================================== -->
    <!-- Creates the class package -->
    <!-- =================================================================== -->
    <target name="jar" depends="build">
    <jar jarfile="${lib.dir}/${name}.jar"
    basedir="${build.dest}"
    includes="**"/>
    </target>

    <!-- =================================================================== -->
    <!-- Creates the API documentation -->
    <!-- =================================================================== -->
    <target name="javadoc" depends="build">
    <mkdir dir="${build.javadocs}"/>
    <javadoc packagenames="${packages}"
    sourcepath="${build.src}"
    destdir="${build.javadocs}"
    author="true"
    version="true"
    use="true"
    splitindex="true"
    windowtitle="${Name} API"
    doctitle="${Name}">
    <classpath refid="classpath"/>
    </javadoc>
    </target>

    <!-- =================================================================== -->
    <!-- Clean targets -->
    <!-- =================================================================== -->
    <target name="clean" depends="init">
    <delete dir="${build.src}"/>
    <delete dir="${build.dest}/org"/>
    <delete dir="${build.dest}/com"/>
    <delete>
    <fileset dir="${build.dest}" includes="**/*.class"/>
    </delete>
    </target>
    </project>
    <!-- End of file -->

    缺省任务:usage 打印帮助文档,告诉有那些任务选项:可用的有build, jar, javadoc和clean.

    初始化环境变量:init
    所有任务都基于一些基本环境变量的设置初始化完成,是后续其他任务的基础,在环境初始化过程中,有2点比较可以方便设置:

    1 除了使用却缺省的property设置了JAVA源路径和输出路径外,引用了一个外部的build.properties文件中的设置,
    <property file="${basedir}/build.properties" />
    这样大部分简单配置用户只要会看懂build.properties就可以了,毕竟XML比起key value的属性文件还是要可读性差一些。用build.properties也可以方便其他用户从编译的细节中解放出来。

    2 CLASSPATH设置:使用了其中的:
    <path id="classpath">
    <pathelement path="${jsdk_jar}"/>
    <fileset dir="${lib.dir}">
    <include name="**/*.jar"/>
    </fileset>
    </path>
    则相当于设置了:CLASSPATH=/path/to/resin/lib/jsdk23.jar; /path/to/project/lib/*.jar;

    文件复制:prepare-src
    创建临时SRC存放目录和输出目录。
    <!-- =================================================================== -->
    <!-- Prepares the source code -->
    <!-- =================================================================== -->
    <target name="prepare-src" depends="init">
    <!-- create directories -->
    <mkdir dir="${build.src}"/>
    <mkdir dir="${build.dest}"/>

    <!-- copy src files -->
    <copy todir="${build.src}">
    <fileset dir="${src.dir}"/>
    </copy>
    </target>

    编译任务:build
    编译时的CLASSPATH环境通过一下方式找到引用一个path对象
    <classpath refid="classpath"/>

    打包任务:jar
    对应用打包生成项目所写名的.jar文件
    <!-- =================================================================== -->
    <!-- Creates the class package -->
    <!-- =================================================================== -->
    <target name="jar" depends="build">
    <jar jarfile="${lib.dir}/${name}.jar"
    basedir="${build.dest}"
    includes="**"/>
    </target>

    生成JAVADOC文档任务: javadoc
    <!-- =================================================================== -->
    <!-- Creates the API documentation -->
    <!-- =================================================================== -->
    <target name="javadoc" depends="build">
    <mkdir dir="${build.javadocs}"/>
    <javadoc packagenames="${packages}"
    sourcepath="${build.src}"
    destdir="${build.javadocs}"
    author="true"
    version="true"
    use="true"
    splitindex="true"
    windowtitle="${Name} API"
    doctitle="${Name}">
    <classpath refid="classpath"/>
    </javadoc>
    </target>

    清空临时编译文件:clean
    <!-- =================================================================== -->
    <!-- Clean targets -->
    <!-- =================================================================== -->
    <target name="clean" depends="init">
    <delete dir="${build.src}"/>
    <delete dir="${build.dest}/org"/>
    <delete dir="${build.dest}/com"/>
    <delete>
    <fileset dir="${build.dest}" includes="**/*.class"/>
    </delete>
    </target>

    TODO:
    更多任务/扩展:(样例)

    测试任务:JUnit测试
    代码风格检查任务:CheckStyle,Jalopy等
    邮件警报任务:可以把以上这些任务的输出警告发送到制定的用户列表中,这个任务可以设置每天自动运行。
    展开全文
  • ant介绍Ant是什么

    2011-06-20 13:15:04
    1. Ant是什么?2. 安装Ant3. 运行Ant4. 编写build.xml5. 内置task(internet)6. EAR task(internet)7. WAR task(internet)8. JUnit task(internet)
  • vipkid提供ant是什么意思、ant英语单词推荐、ant英语解释、ant相关词、ant英语短语英音 [ænt] 美音 [ænt]【中文释义】n. 蚂蚁;【英文释义】Noun:social insect living in organized colonies; characteristically ...

    vipkid提供ant是什么意思、ant英语单词推荐、ant英语解释、ant相关词、ant英语短语

    英音 [ænt] 美音 [ænt]

    【中文释义】

    n. 蚂蚁;

    【英文释义】

    Noun:social insect living in organized colonies; characteristically the males and fertile queen have wings during breeding season; wingless sterile females are the workers

    【ant相关词】

    ant- pref. anti-的变体(ant-用于元音前,而anti-用于辅音前,其含义见anti-);

    ant. [医][=antenna]触角,天线;

    anta n. 壁端柱;

    antacid n.& adj. 解酸剂; 防酸剂; 解酸的; 防酸的;

    antae n. 壁角柱,门廊柱;壁端柱( anta的名词复数 );

    antagonism n. 对抗,敌对;相克作用;对立;敌意;

    antagonist n. 敌手,反对者;对抗肌,拮抗肌;对抗药;(戏剧,小说等的)反面人物;

    antagonize vt. 使成为敌人;引起…敌对[对抗];对…起反作用;中和;

    ante n. (赌纸牌下的)赌注;已付的金额;分担额;预付款; vt.& vi. (尤指赌账)付账;付出;支付分担额;付款(通常指不愿意的);

    ante- pref. 表示“在…之前的,比…早的”之义;

    anteater n. 食蚁兽;

    antebellum adj. (美国南北)战争前的;

    antecede v. 先前,先行;

    antecedence n. 先;先行;居先;逆行;

    antecedent n. 经历;(比例)前项;前件;祖先; adj. 在前的,在先的,先行的;

    antechamber n. 前厅;

    antechoir n. 教堂唱诗班座席入口处;

    antedate vt. (在历史上)比…为早;先于;早于;(在信、支票等上)填写比实际日期早的日期;

    antediluvian adj. (上说的)大洪水以前的;非常古老的; n. 大洪水以前的人或事物;年迈的人;老朽;远远落后于时代的人;

    【ant相关词条】

    male ant n. 雄蚁;

    ant lion n. 蚁狮;

    ant cow 蚜虫,蚁牛;

    ant hill n. 蚁丘;

    queen ant n. 蚁后;

    worker ant n. 工蚁;

    like an ant on a hot pan 像热锅上的蚂蚁;

    ant. [医][=antenna]触角,天线;

    ant- pref. anti-的变体(ant-用于元音前,而anti-用于辅音前,其含义见anti-);

    -ant suf. [构成形容词] 表示:“进行…动作的”,“处于…状态的”,“促进…作用的”:repentant, triumphant, expectorant;“有…的”,“显示…的”,“做…的”:defiant, radiant;[构成名词]表示“进行…动作的人”,“施行…作用者”,“…者(人或物)”:accountant, assistant, occupant;

    Ant-Tanager [医]红冠蚁裸鼻雀;

    meat ant 肉蚂蚁;

    Ant A [医][=antimycin A]抗霉素A;

    Ant sup [医][=anterior superior spine](髂骨)前上棘;

    Ant-Shrike [医]蚁鸫;

    展开全文
  • Ant是什么?如何开始使用Ant?Ant 的基本概念 构建脚本 构建脚本的命名 Ant的路径模式? Ant任务
  • Ant是什么

    万次阅读 多人点赞 2017-08-09 14:36:18
    Ant是Java的生成工具,是Apache的核心项目; Ant类似于Unix中的Make工具,都是用来编译、生成; Ant是跨平台的,而Make不能; Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了...

    一、Ant介绍

    Ant是Java的生成工具,是Apache的核心项目;
    Ant类似于Unix中的Make工具,都是用来编译、生成;
    Ant是跨平台的,而Make不能;
    Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录、复制文件等功能,所以可以直接点击Ant文件,即可编译生成你的项目。
    下载地址:http://ant.apache.org/bindownload.cgi

    二、Ant配置

    1. 在Ant安装之前需要安装好JDK,并配置好JAVA_HOME;
    2. 新建环境变量ANT_HOME:值为ANT的主目录;
    3. 在path中配置%ANT_HOME%/bin;
    4. 配置完成之后,打开命令行,输入ant,当出现“Buildfile: build.xml does not exist! Build failed”时说明配置完成;

    三、Ant入门

    ant的默认生成文件为build.xml;
    输入ant后,ant会在当前目录下搜索是否有build.xml,如果有,则执行;当然也可以自定义生成文件,通过ant -f a.xml即可指定a.xml为生成文件;
    ant的生成文件是xml文件,整体结构为:

    <?xml version="1.0" encoding="GBK"?>  
    <project default="targetname">  
        <target name="name">  
        </target>  
    </project>

    project是生成文件的根元素,表示一个工程;
    target是project的子元素,表示一个任务;一个project中可以定义多个target元素,表示多个任务;
    default属性表示默认执行的target,如果ant命令没有指定target,则执行default的target;
    ant targetname; 则会执行此target,而忽略default设置的target;targetname不能重复。

    四、Ant的XML元素详解

    <project>元素

    Ant生成文件的根元素,一般形式如:

    <project default="    "[ basedir="." ] [name="projectname"]>

    default的值是默认执行的target名;
    basedir是指定基准目录,一般都是basedir=”.”;
    name是指工程名字。

    <target>元素

    是project元素的子元素,在project元素中能够有多个target;一般形式如下:

    <target name="    "  [ depends="  A  "]  [ if ="  prop1 "] [ unless=" prop2"]>
    </target>

    name表示target的名称;
    depends中填写其他target名称(可以有多个名称,用逗号分割),表示只有targetA完成之后才能够做此target,如果执行此target,则会先执行A;
    if的值表示一个属性名,只有设置了该属性名,才能执行此target;
    unless的值表示一个属性名,只有没有设置该属性名,才能执行此target。

    <property>元素

    project的子元素,用于定义属性,一般形如:
    <property name="pname" value="pvalue"/>
    如果要使用此property,则需要${pname},类似于表达式语言;
    <property file="a.properties"/> 通过此属性文件导入属性;
    如果单纯想使用$,则通过$$表示。

    五、Task介绍

    在Ant中Task是target的子元素,即一个target中可以有多个task;而Task分为:
    (1)核心Task;
    (2)可选Task;
    (3)自定义Task;
    下面介绍一些常用的核心Task。

    <echo>

    用于单纯输出,如:

    <echo>hello</echo>

    <javac>

    用于编译java文件,一般形式如下:
    <javac srcdir="src" destdir="class" [classpath=" "]/>
    srcdir是编译此文件夹下或子文件夹下的全部java文件;
    destdir是编译后的class文件放置路径;
    classpath指定第三方类库;

    <java>

    运行java类,一般形式如下:

    <Java classname="    " fork="yes"><arg line="param1   param2   param3"/></java>

    classname用于指定运行的类名称;
    fork=”yes”表示另起一个JVM来执行java命令,而不是中断ANT命令,因此fork必须为yes;

    <jar>

    打包成jar包;一般形式如下:

    <jar destfile="main.jar" basedir=" ">
        <manifest>
            <attribute name="Main-Class" value="classname"/>  <!--指定主类-->
        </manifest>
    </jar>

    destfiie的值为jar包的名称,一般为${dest}/main.jar
    basedir的值是需要打成jar包的目录,一般为${classes};
    manifest表示设置META-INF;

    <mkdir>

    创建目录,可以多层创建,比如a\b\c,则可以连续创建,一般形式如下:

    <mkdir dir="a\b"/>

    <delete>

    删除目录,一般形式如下:
    <delete dir="a\b"/> 可以删除a目录下的b目录;
    <delete file="1.txt"/>可以删除文件;

    <tstamp>

    时间戳,一般形式如下:

    <tstamp />

    接下来可以使用${DSTAMP}进行调用当前时间;

    <copy>

    复制文件,一般形式如下:

    <copy file="file1" tofile="file2"/>

    file是源文件;
    tofile是目标文件;

    <move>

    移动文件,一般形式如下:

    <move file="file1" tofile="file2"/>

    file是源文件;
    tofile是目标文件;

    <replace>

    用于替换字符串,类似于String的replace操作,一般形式如下:

    <replace file="filename" token="old" value="new"/>

    file表示要执行替换的文件;
    token表示被替换的字符串;
    value表示替换的字符串。

    六、代码举例:一般项目中的ant结构

    <project default="init">  
        <property name="src" value="src"/>  
        <property name="classes" value="classes"/>  
        <property name="dest" value="dest"/>  
        <path id="classpath">  
            <pathelement path="${classes}"/>  
        </path>  
        <target name="help">  
            <echo>help -打印帮助信息</echo>  
            <echo>compile -编译java源文件</echo>  
            <echo>run -运行程序</echo>  
            <echo>build -打成jar包</echo>  
            <echo>clean -清楚全部编译生成文件</echo>  
        </target>  
        <target name="compile">  
            <delete dir="${classes}"/>  
            <mkdir dir="${classes}"/>  
            <javac srcdir="${src}" destdir="${classes}"/>  
        </target>  
        <target name="run" depends="compile">  
            <java classname="org.xiazdong.Test" fork="yes">  
                <classpath path="${classes}"/>  
            </java>  
        </target>  
        <target name="build" depends="run">  
            <delete dir="${dest}"/>  
            <mkdir dir="${dest}"/>  
            <jar destfile="${dest}/Test.jar" basedir="${classes}">  
                <manifest>  
                    <attribute name="Main-Class" value="org.xiazdong.Test"/>  
                </manifest>  
            </jar>  
        </target>  
        <target name="clean">  
            <delete dir="${classes}"/>  
            <delete dir="${dest}"/>  
        </target>  
    </project>  
    <?xml version = "1.0" encoding="GBK"?>  
    <project name="Test" default="" basedir=".">  
        <property name="src" value="${basedir}\src"/>  
        <property file="${basedir}\a.properties"/>  
        <!--  
        path用法  
            1.id属性表示编号,用于被引用  
        -->  
        <path id="classpath">  
        <!--   
        pathelement的用法  
            1.path表示多个目录,用“;”隔开目录     
            2.location表示一个目录  
        -->  
            <pathelement path="lib;src"/>  
            <pathelement location="lib"/>  
        <!--  
        dirset的用法  
            1.dir属性指定根目录  
            2.子元素<include name="    "/>表示包含的目录  
            3.子元素<exclude name="    "/>表示不包含的目录  
        -->  
            <dirset dir="lib">  
                <include name="**/*Test*"/>  
                <exclude name="**/class"/>  
            </dirset>  
        <!--  
        filelist的用法  
            1.dir属性指定根路径  
            2.files属性指定文件名的列表,用","隔开  
        -->  
            <filelist dir="lib" files="a.xml,b.xml"/>  
        <!--  
        fileset用法  
            1.dir属性指出根路径  
            2.子元素<include name="   "/>指定包含的文件名  
        -->  
            <fileset dir="lib">  
                <include name="**/*.jar"/>  
            </fileset>  
        </path>  
        <!--  
        target用法  
            1.表示任务,子元素为各种task的集合;  
        -->  
        <target name="target1">  
        <!--  
        javac用法  
            1.srcdir表示java文件的目录  
            2.destdir表示class文件的保存目录  
        -->  
            <javac srcdir="src" destdir="bin">  
        <!--  
        classpath用法  
            1.refid引用前面的path指定的路径  
        -->  
                <classpath refid="classpath"/>  
            </javac>  
        <!--  
        java用法  
            1.classname表示要运行的类  
            2.fork="yes"一定要写上!!  
        -->  
            <java classname="Test" fork="yes">  
                <classpath refid="classpath"/>  
        <!-- 
            arg表示指定的参数 
        -->  
                <arg value="a b c"/>  
            </java>  
        <!-- 
        echo表示输出 
        -->  
            <echo>Hello world</echo>  
        <!--  
        copy表示复制文件  
        delete表示删除文件  
        mkdir表示创建目录  
        move表示移动文件  
        -->  
            <copy file="src.txt" tofile="dest.txt"/>  
            <delete dir="src"/>  
            <mkdir dir="src"/>  
            <move file="src.txt" tofile="dest.txt"/>  
        </target>  
    </project>  

    七、在Eclipse中使用Ant

    在Eclipse中虽然没有内置创建Ant的生成文件,但是可以通过配置完成:
    1. 点击 window–>preferences–>General–>editors–>file associations;
    2. 在File types中创建一个build.xml,并将associated editor的默认项设置为ant editor即可;
    当在项目中创建一个build.xml时,这个文件就是ant的生成文件。
    这里写图片描述

    八、模式匹配

    在Ant中有一些基本的模式匹配的功能,比如:
    *表示任意字符串,**表示任意数量的目录;
    1. *.java表示任意的java文件。
    2. */*.java表示当前目录的任意java文件。
    3. **/*.java表示当前目录结构下的任意java文件。

    <fileset dir="src">
        <include name="**/*.java"/>
        <include name="**/*.txt"/>
        <exclude name="**/*Test*"/>
    </fileset>

    表示包含src目录下的所有java和txt文件,排除文件名包含Test的文件。

    举例:将java文件拷贝到dest文件夹下:

    <copy todir="dest">  
        <span style="white-space:pre"></span>
        <fileset dir=".">  
            <span style="white-space:pre"></span>
                <include name="**/*.java"/>  
            <span style="white-space:pre"></span>
        </fileset>  
    </copy>  

    九、自定义任务

    自定义任务类似于JSP中的自定义标签:
    1. 继承org.apache.tools.Task;
    2. 覆写public void execute()throws BuildException;
    3. 在类中添加的属性即为任务标签的属性;
    4. 在build.xml中声明任务<taskdef name=" " classname=" " classpath="bin"/>

    举例:复制文件:

    package org.tools;  
    
    import java.io.BufferedReader;  
    import java.io.File;  
    import java.io.FileInputStream;  
    import java.io.FileWriter;  
    import java.io.IOException;  
    import java.io.InputStreamReader;  
    import java.io.PrintWriter;  
    
    import org.apache.tools.ant.BuildException;  
    import org.apache.tools.ant.Task;  
    public class SimpleTask extends Task{  
        private File file;  
        private File tofile;  
        public File getFile() {  
            return file;  
        }  
        public void setFile(File file) {  
            this.file = file;  
        }  
        public File getTofile() {  
            return tofile;  
        }  
        public void setTofile(File tofile) {  
            this.tofile = tofile;  
        }  
        @Override  
        public void execute() throws BuildException {  
            try {  
                PrintWriter out = new PrintWriter(new FileWriter(tofile));  
                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file)));  
                String line = null;  
                while((line=in.readLine())!=null){  
                    out.println(line);  
                }  
                out.close();  
                in.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }
        }
    }

    build.xml

    <taskdef name="MyCopy" classname="org.tools.SimpleTask" classpath="bin"></taskdef>  
    <target name="mycopy">  
        <MyCopy file="2.txt" tofile="output.txt"/>  
    </target>  
    展开全文
  • 展开全部ANT就是天线接口,用来连接天线。常见于收音机,或者GPS等上面。在接收短波或FM时需62616964757a686964616fe58685e5aeb931333433626437要外界天线,以增加接收灵敏度。作为高速数据传输领域的新成员,它在...
  • Ant是什么? 1 Ant是什么? Apache Ant 是一个基于 Java的生成工具。 生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程...
  • 音标:英[ænt]美[ænt]n.蚂蚁网络蚂蚁;天线;只蚂蚁;蚁网络释义1 . 蚂蚁...另外,密码战士还设计了一个系统,用来与英语26个字母相对应,例如,... 天线ans:回答ant:天线apr:四月3 . 只蚂蚁I looked up to see a...
  • 展开全部ANT就是天线接口,用来连接天线。常见于收音机,或者GPS等上面。在接收短波或FM时需62616964757a686964616fe58685e5aeb931333433626437要外界天线,以增加接收灵敏度。作为高速数据传输领域的新成员,它在...
  • ant 是什么???

    2012-07-20 21:40:16
    1 Ant是什么?  Apache Ant 是一个基于 Java的生成工具。  生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程变得更  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,644
精华内容 1,457
关键字:

ant是什么