2014-09-19 86 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