2014-09-19 4 views
0

Я учусь build.xml и смущает следующий код:Что это делает build.xml?

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

при запуске Java с командной строки, включая -DPORT = 8080, а затем в Java коде я получаю значение порта 8080, вызвав

String port = System.getenv(PORT). 

Что такое вышестрочный.xml? До сих пор я знаю, что $ означает представлять свойство, а @ - представлять атрибут. Кроме того, приведенный выше код является единственным местом, где появляются ПОРТ и порт. Что происходит здесь, чтобы значение порта было наконец получено в 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? тот, с которым я google из Интернета описываю вещи так кратко.

+0

Попробуйте получить книгу о муравьях. : http://shop.oreilly.com/product/9780596001841.do – Jayan

+0

Пожалуйста, задайте один раз конкретный вопрос, поэтому ответы будут полезны. sysproperty обсуждается на http://ant.apache.org/manual/Tasks/junit.html – Jayan

ответ

1

Что вы видите macrodef в муравей. Будет другое место в build.xml (или другом build.xml), где это вызвано, например,

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

нет, я видел user389955

+0

yes. Я видел один в другом XML-файле. – user389955

Смежные вопросы