我想要做的是編譯爲一個文件,該文件將源文件中的常量作爲版本。無法訪問導入的ANT目標中的腳本生成的屬性
我有這樣的設置(或至少是顯著位):
任務/ compile.xml
<project name="Compile">
<target name="check.version">
<script language="javascript">
regex = /VERSION.+?"([\d\.]+)";/;
r = new java.io.BufferedReader(new java.io.FileReader(new java.io.File(file)));
line = r.readLine();
while ((line = r.readLine()) != null) {
m = regex.exec(line);
if (m) {
project.setProperty("project.version" , m[1]);
break;
}
}
r.close();
</script>
<echo>${ant.project.name}-${project.version}</echo> <!-- = Fail-0.2 -->
</target>
</project>
並且build.xml:
<project name="Fail">
<import file="${basedir}/build/tasks/compile.xml"/>
<target name="test">
<antcall target="check.version">
<param name="file" value="${basedir}/Source.as"/>
</antcall>
<echo>${project.version}</echo> <!-- = ${project.version} -->
<echoproperties></echoproperties>
</target>
</project>
所以,似乎腳本設置的屬性只在該目標中進行了本地定義,如果我在同一個項目中指定了另一個目標(「編譯」),它也不會知道該屬性。
我也嘗試在「編譯」 - 項目xml中設置一個,但它不會被目標覆蓋。
那麼我怎樣才能訪問該腳本生成的屬性?或者有另外一種方法來做這樣的事情嗎?
我真的想保留在一個單獨的XML部分,因爲它使項目構建腳本更清潔。
謝謝!
另外,你是否知道任何有關螞蟻相關問題的IRC頻道(與其中的人)? – 2009-11-12 11:33:33