Definiuję macrodef w Ant
i używam javascript
do wykonania pracy. W tym przypadku sprawdzam poprawność timezone
.W javascriptie uruchomionym z Anta, jak uzyskać wartość argumentu?
<macrodef name="validateTimeZone">
<attribute name="zone" />
<sequential>
<echo>result: ${envTZResult}</echo>
<echo> validating timezone: @{zone}</echo>
<script language="javascript"><![CDATA[
importClass(java.util.TimeZone);
importClass(java.util.Arrays);
var tz = project.getProperty("zone");
println(" got attribute: " + tz);
var result = Arrays.asList(TimeZone.getAvailableIDs()).contains(tz); //testing if timezone is known
project.setProperty("zoneIsValid", result);
]]>
</script>
</sequential>
</macrodef>
Problem polega na tym, że project.getProperty()
nie pobiera wartości przekazanych atrybutów. Czy ktoś wie, w jaki sposób można uzyskać wartość atrybutu z javascript?
To może pomóc: http://ant.apache.org/manual/Tasks/script.html - Spójrz na przykład w połowie drogi w dół. – techfoobar