簡體   English   中英

Ant中的任務依賴性順序

[英]Task dependency order in Ant

我正在嘗試學習螞蟻,並在文檔中找到了示例構建文件

<project name="MyProject" default="dist" basedir=".">
  <description>
    simple example build file
  </description>
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist" location="dist"/>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init"
        description="compile the source">
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile"
        description="generate the distribution">
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
  </target>

  <target name="clean"
        description="clean up">
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

我假設clean步驟應該在init步驟之前運行,但是兩個步驟都不依賴於另一個。 init應該依靠clean步驟嗎? 如果沒有,那么螞蟻怎么知道正確的順序呢?

運行此ant構建文件時,將不執行clean目標。 它不在依賴鏈中。 您必須從命令行顯式觸發它,例如

ant -f _buildFile.xml clean
ant -f _buildFile.xml

我已經在bash文件中完成了該操作。 但是,這是一個示例文件,因此不一定是您的最終構建系統如何工作。

也許做一個dist應該先清理 (看起來很合理),但這應該是dist依賴項的一部分,而不是init目標。 例如,您可能想編譯而不是執行clean 所以

<target name="dist" depends="clean, compile"...

或者,您可以添加一個新的目標clean_dist ,然后在其中添加依賴項。 然后,您可以通過在命令行上指定目標來進行快速分發構建和實際分發構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM