Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 蚂蚁<;进口>;vs.<;包括>;任务_Ant_Import_Include - Fatal编程技术网

Ant 蚂蚁<;进口>;vs.<;包括>;任务

Ant 蚂蚁<;进口>;vs.<;包括>;任务,ant,import,include,Ant,Import,Include,我现在看到Ant同时有一个任务和一个任务 根据描述: 包括 在当前项目中包含另一个生成文件 及 进口 将另一个生成文件导入当前项目 那么,为什么要用一个来代替另一个呢 这是我的实际问题: 在我们当前的构建系统中,我们连接了一组Java脚本,然后将它们最小化。JavaScripts位于十几个不同的目录中,我们从每个目录中获取批,并将它们连接成五到六个超级最小化的JavaScripts。其中一些文件被复制到多个超级Java脚本中 为了使调试更容易,构建更灵活,我想将所有文件复制到target/wor

我现在看到Ant同时有一个
任务和一个
任务

根据描述:

包括 在当前项目中包含另一个生成文件

进口 将另一个生成文件导入当前项目

那么,为什么要用一个来代替另一个呢

这是我的实际问题:

在我们当前的构建系统中,我们连接了一组Java脚本,然后将它们最小化。JavaScripts位于十几个不同的目录中,我们从每个目录中获取批,并将它们连接成五到六个超级最小化的JavaScripts。其中一些文件被复制到多个超级Java脚本中

为了使调试更容易,构建更灵活,我想将所有文件复制到
target/work/resources2
目录中,其中每个子目录下代表一个不同的超最小化JavaScript。出于调试目的,我们将包括非最小化的超级JavaScript和原始脚本。构建脚本并不复杂,但整个部分占用了很多行。我正在考虑将
内容放入一个单独的XML文件中,因此整个过程如下所示:

<target name="process-resources"
     description="Concatenate and minimize the JavaScripts (using Maven lifecycle names for our targets">
     <!-- The following include the copying stuff -->
     <here.be.dragons file="${basedir}/reservations.xml"/>
     <here.be.dragons file="${basedir}/date.xml"/>
     <here.be.dragons file="${basedir}/select.xml"/>

     <for param="concat.dir">
         <fileset dir="${work.dir]/resources2"/>
         <sequential>
            <here.I.am.concatenating.and.minimizing/>
         </sequential>
    </for>
</target>

我认为有四种可能性:

  • 使用
我从不热衷于使用
,尽管现在可能是这样做的好时机。“实体包含”的想法会起作用,但这是大多数人不理解的,我担心这会让那些不得不支持我所做的事情的人感到困惑。在这种情况下,
可能无法使用,但我仍然很好奇它们的区别是什么。

进口和包括有什么不同? 简短版本:如果要覆盖目标,请使用导入,否则请使用include

使用“导入”时,导入的目标最多有两个名称可用。它们的“普通”名称没有任何前缀,可能带有前缀名称(as属性的值或导入的项目的name属性,如果有)

使用“包含”时,包含的目标仅以前缀形式提供

使用导入时,导入的目标的dependens属性保持不变,即它使用“普通”名称,并允许您覆盖依赖项列表中的目标

使用include时,无法覆盖包含的目标,并重写其depends属性,以便使用前缀名称。这允许包含文件的编写者控制作为依赖项的一部分调用哪个目标

使用不同的前缀可以多次包含同一文件,但不能多次导入同一文件


即使它与这个问题没有直接关系,我认为值得注意的是,示例中的
不是标准的
ant
,而是来自。