java - 使用目标覆盖时设置 Ant 目标的顺序

原文 标签 java ant

我覆盖了从共享build.xml进行编译的调用,以在我的自定义版本中首先调用compile-generate。

如文档中所示和说明,我将我的覆盖的编译目标添加为depends =“ compile-generation,shared.compile”。但是,现在将我的编译生成的目标称为被覆盖目标的第一个依赖项,而不是最后一个依赖项(根据我的需要)。

有谁知道如何解决它,以便在调用编译目标时首先调用“ shared.compile”上的原始依赖项,最后一次调用我的重写依赖项?

我的build.xml:

<?xml version="1.0"?>
<project name="ExternalTools" basedir="." default="jar">

 <import file="../../../shared-build.xml" />

<target name="compile" depends="compile-generated, Shared.compile"/>
<target name="compile-generated">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.gen.dir}"
         destdir="${classes.dir}"
         classpathref="build.classpath"
         debug="on"/>
</target>


</project>


共享的“ build.xml”编译目标:

<target name="compile" depends="prepare-staging-dirs,copy-dependlib-jars" description="Compile into stage directory">
                <javac srcdir="${src.dir}"
                       destdir="${classes.dir}"
                       classpathref="build.classpath"
                           includeantruntime="false"
                       debug="on"/>

                <copy todir="${classes.dir}">
                  <fileset dir="${src.dir}" includes="**/*.properties,**/*.xml,**/*.xsd,**/*.html" />
                </copy>
        </target>

最佳答案

依赖性不是有序的,它们是分层的。如果同一层次结构中的两个依赖项以不希望的顺序运行,则只需让一个依赖于另一个即可。

在您的情况下,您可以告诉compile-generated依赖共享的compile的依赖关系。

在共享的build.xml中:

<target name="compile" depends="copy-dependlib-jars,prepare-staging-dirs">
    <echo message="Running root.compile" />
</target>

<target name="copy-dependlib-jars">
    <echo message="Running copy-dependlib-jars" />
</target>

<target name="prepare-staging-dirs">
    <echo message="Running prepare-staging-dirs" />
</target>


定制build.xml:

<import file="build.xml" />

<target name="compile" depends="compile-generated,root.compile">
    <echo message="Running custom compile" />
</target>

<target name="compile-generated" depends="copy-dependlib-jars,prepare-staging-dirs">
    <echo message="Running compile-generated" />
</target>



  蚂蚁编译


 copy-dependlib-jars:
      [echo] Running copy-dependlib-jars

 prepare-staging-dirs:
      [echo] Running prepare-staging-dirs

 compile-generated:
      [echo] Running compile-generated

 root.compile:
      [echo] Running root.compile

 compile:
      [echo] Running custom compile

关于java - 使用目标覆盖时设置 Ant 目标的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48693821/

相关文章:

java - 使用Ant Builder将文件复制到远程位置

java - 如何模拟javax.servlet.ServletInputStream

java - 使用ant,在不知道完整路径的情况下重命名目录?

java - 无法建立新的Java Spring项目

java - Sonarqube测试覆盖过滤器(Jacoco)

java - Ant 的正确组合是什么?

java - 如何使用Java中的所有单元格值映射Excel文件中的第一行(属性名称)?

java - Android-在主线程中运行响应调用

java - 在JAVA中获取动态加载的Class的.class文件的路径

java - 在foreach中传递3个数组