1.Ant简介

Apache Ant是一个将软件编译/测试/部署等步骤联系在一起加以优化的一个构建工具,常用于java环境中的软件开发。Ant的默认配置文件是build.xml。

对java语言的支持比较好。

 

2.Ant的优势

跨平台性:Ant是纯java语言编写的,所以具有很好的跨平台性。

操作简单:Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个xml文件(构建文件)。

语法清晰:和 make 比较 (C 语言)

功能强大:当需要开发一些ant插件的时候,会发现更多的功能。

 

3.Ivy

Ivy是一个跟踪管理项目直接依赖关系的工具。Ivy具有很好的灵活性和可配置性,使其可以适应各种不同的依赖管理和构建过程要求;虽然Ivy作为依赖管理工具,其可以与Apache Ant进行紧密集成,在依赖管理中充分利用Ant提供的强大任务功能。Ivy是一个开源项目,它提供了很多强大的功能,但是最受欢迎和最有用的特性是它的灵活性/与ant集成/传递依赖管理。

ivy.xml :

<ivy-module version="2.0">
    <info organisation="wfth" module="wfth.alm" />
    <dependencies>
        <dependencies org="org.apache.commons" name="common-collections4" rev="4.0" />
    </dependencies>
</ivy-module>

ant的build.xml中project加上属性   xmlns:ivy="antlib:org.apache.ivy.ant"

在target中使用 <ivy:retrieve/>下载依赖的jar包

 

4.使用Ant

Ant的默认配置文件是build.xml,可以通过配置build.xml执行ant任务

ant命令格式 ant [options] [target ...]

执行build.xml脚本文件中名为dist的target  ant -f build.xml dist

执行默认脚本文件,即build.xml的dist target  ant dist

执行默认脚本文件默认target ant

 

5.build.xml结构

AmqpTemplate 依赖 ant 依赖管理_jar

 

6.ant的antcall任务 运行一个ant目标

属性:

(1)target:在AntCall任务中target属性的作用是指定要被调用执行的target,通过名称指定这个target属性是必需的。

值得注意的是,当通过AntCall任务调用的target存在依赖的target(depends中指定了target),则depends属性中被

指定的target也会被执行。

(2)inheritAll:用于指定是否继承当前的属性。默认为true,代表被调用的target可使用这些属性。

(3)inheritRefs:用于指定是否覆盖reference属性或者是否建立一个对当前reference属性的引用。在默认的情况下,AntCall任务不会

覆盖reference属性,除非把inheritRefs属性设为true,默认为false。

<antcall target="A" />

 

7.ant的fileset任务

fileset是一个嵌套元素(在其他任务元素中嵌套,比如copy)

<fileset dir="${server.src}" casesensitive="yes">
    <include name="**/*.java" />
    <exclude name="**/*Test*"/>
</fileset>

从一个“根目录”开始搜索的一组文件

通过patternsets和selectors

可以作为文件处理的task的子元素

可以定义并被引用

 

8.ant的path任务

path定工程依赖的jar包

例:

<path id="project.class.path">
    <pathelement location="${jdk.home}/jre/lib/rt.jar"/>
    <pathelement location="${jdk.home}/lib/tools.jar"/>
    <pathelement location="${jdk.home}/lib/servlet-api.jar"/>
    <pathelement location="${jdk.home}/lib/jsp-api.jar"/>
    <pathelement location="${weblogic.lib}/weblogic.jar"/>
    <fileset file="${lib}/*.jar"/>
</path>

9.ant的taskdef任务

Taskdef任务通过执行java类来创建一个用户定制的任务

例:

<taskdef name="任务名" classname="java类" />
<taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy" classpathref="project.class.path"/>