Java 蚂蚁-任务和目标之间的差异

Java 蚂蚁-任务和目标之间的差异,java,ant,build,Java,Ant,Build,我是Ant的新手,在理解它的一些基本功能方面有困难,比如task和target 在线文档和书籍都说,target是整个构建过程的一个阶段,而task是最小的工作量。但是我觉得很难理解这到底是什么意思, 有人能用例子深入解释一下在Ant中什么是targets和tasks吗?目标包含一个或多个任务 一个目标有一个用户定义的名称,通常执行一些高级操作,如“编译代码”或“构建一个可部署的jar文件”。它只是一个方便的任务容器(还允许您指定对其他目标的依赖关系) 任务由Ant(或插件)提供和命名,通常是较

我是Ant的新手,在理解它的一些基本功能方面有困难,比如
task
target

在线文档和书籍都说,
target
是整个构建过程的一个阶段,而
task
是最小的工作量。但是我觉得很难理解这到底是什么意思,


有人能用例子深入解释一下在Ant中什么是
target
s和
task
s吗?

目标包含一个或多个任务

一个目标有一个用户定义的名称,通常执行一些高级操作,如“编译代码”或“构建一个可部署的jar文件”。它只是一个方便的任务容器(还允许您指定对其他目标的依赖关系)

任务由Ant(或插件)提供和命名,通常是较低级别的任务,如“复制文件”、“创建目录”。如果不执行您需要的操作,您可以创建新任务(请参阅)

下面是一个例子:


目标名为“compile”(因为它是用来编译一些代码的。但是,它的名称是任意的——我也可以称它为“doUsefulStuff”)。为了完成此目标,我们指定要执行两个任务:

  • 创建目录(使用
    mkdir
    任务)

  • 使用
    javac
    任务编译一些代码,并将编译后的类放入步骤1中的目录中


  • (免责声明-可能可以创建零任务的目标-我没有检查-但它们没有多大用处)。

    另一个基本区别是,当运行ant时,您指示要执行的目标(不是任务)。因此,当您通过命令行调用ant时,可以指定
    ant[options][target]
    。如果未指定目标,则将执行生成文件(build.xml)中指示为默认的目标

    如果在Eclipse中的ant视图上打开ant构建文件,则可执行选项是目标,而不是任务


    出于实际目的,目标进一步分为私有(又名内部)和公共。不同之处在于公共目标的
    声明包含
    description
    属性。我之所以提到这一点,是因为您可能希望在build.xml的子步骤中分解/重构目标。子步骤可以是内部目标。

    目标是“编译”的确切含义是什么?我是说这意味着什么?谢谢。我们可以自定义用户定义的任务和目标,还是必须使用Ant指定的任务和目标?如果Ant不执行您需要的任务,您可以创建新任务(请参阅)。谢谢。这很有帮助。
    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>