Ant

ant 中的 out.absolute.dir 是什麼意思?

  • March 19, 2016

我在 Linux 中經常使用的不同項目的建構文件中看到了out.absolute.dir,我真的很好奇它到底是什麼意思。我寫了一個簡短的建構文件,我在以下幾行中提到了

<project name="Test_Ant_APK" default="print">
<property name="cal.out.dir" location="${out.absolute.dir}"/> 
<target name="print">
  <echo>p=${cal.out.dir}</echo>
</target>
</project>

當我從命令行執行這個建構文件時,我得到了這個輸出

Buildfile: /home/jody/workspace/Test_Ant_APK/build.xml

print:

   [echo] p=/home/jody/workspace/Test_Ant_APK/${out.absolute.dir}
BUILD SUCCESSFUL

Total time: 0 seconds

我對輸出有點困惑。我認為我們應該有p=/home/jody/workspace/Test_Ant_APK輸出。為什麼我們${out.absolute.dir}在輸出的末尾有?這是什麼意思?這個建構文件有問題嗎?

out.absolute.dir具體指向哪裡?

(這開始是一個評論,但變得太長,所以現在是一個答案)

  1. out.absolute.dir在 Linux 中沒有特定的含義。看起來它是您的 Ant 建構腳本使用的變數。如果它經常出現在許多不相關的 Ant 腳本中,它可能只是許多 Ant 使用者/開發人員使用的常見約定(但在 Ant 之外仍然完全任意,本身沒有特殊含義)。
  2. ${out.absolute.dir}只是一種確保shell明確使用變數的方法,如果其他文本緊隨其後 - 例如${out.absolute.dir}foo被視為變數$out.absolute.dir後跟文字文本foo,而$out.absolute.dirfoo被視為完全不同的變數呼叫$out.absolute.dirfoo(可能不存在並且會導致腳本出錯,或者更糟糕的是,導致腳本執行不應該執行的操作,例如寫入而不是寫入)/home/jody/workspace/Test_Ant_APK/的子目錄.../Test_Ant_APK
  3. /home/jody/workspace/Test_Ant_APK/${out.absolute.dir}只是將變數的值附加$out.absolute.dir/home/jody/workspace/Test_Ant_APK/.
  4. 要準確找出該變數指向的位置,您需要徹底檢查 Ant 建構腳本以找到為其賦值的行。沒有腳本的副本,我們無法回答這個問題。我建議grep 'out.absolute.dir.*='在您的 ant 和相關的建構腳本上執行。 $out.absolute.dir可能(並且可能是)由其他變數建構而成,因此您也必須查找它們的值。

變數可能是由 Ant 自己自動定義的。我對 Ant 的了解還不夠好,可以肯定地說。

引用自:https://unix.stackexchange.com/questions/270785