2014-09-19 87 views
0

我學習的build.xml和我通過下面的代碼混淆:這個build.xml在做什麼?

<macrodef name="a-test"> 
     <attribute name="port" default="${PORT}"/>  #1 
     <junit printsummary=... 
      <env key="PORT" value="@{port}" />   #2 
      ... 

當我運行命令行包括-DPORT = 8080和Java然後在Java代碼中我通過調用

String port = System.getenv(PORT). 
得到端口值8080

上面的build.xml在做什麼?到目前爲止,我知道$是代表一個屬性,而@代表一個屬性。此外,上面的代碼是PORT和端口出現的唯一地方。這裏發生了什麼,以便在Java代碼中最終獲得端口值?謝謝。

另一個問題,有什麼區別順便說一句。使用「env密鑰」並使用「sysproperty」?根據http://etutorials.org/Programming/Java+extreme+programming/Chapter+3.+Ant/3.6+Passing+Arguments+to+a+Buildfile/ sysproperty可以用來解析參數-D到java代碼,而env鍵是用來做同樣的事情吧?謝謝。

有沒有關於build.xml的詳細文檔?我從互聯網上谷歌的一個人簡短地描述事情。

+0

嘗試獲取一本關於螞蟻的書。 :http://shop.oreilly.com/product/9780596001841.do – Jayan 2014-09-19 06:20:58

+0

請問一次具體問題,所以答案將是有用的。 sysproperty在http://ant.apache.org/manual/Tasks/junit.html – Jayan 2014-09-19 06:24:49

回答

1

你在螞蟻中看到的是macrodef。在build.xml(或其他build.xml)中會有另外一個地方,這被稱爲像

<a-test port=<value> .. 
+0

討論不,我看到 user389955 2014-09-19 15:54:05

+0

是的。我在另一個xml文件中看到了一個。 – user389955 2014-09-29 01:06:50