#ant #ant-contrib
#ant #ant-contrib
Вопрос:
Ниже приведен мой код. Мы используем версию Ant 1.9.11 и попытались с ant-contrib-1.0b3.jar и ant-contrib-1.0b2.jar .
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<target name=abc>
<if>
<equals arg1="${xyz}" arg2="true"/>
<then>
<replace file="src/com/xyz.java" token="DEBUG = false;" value="DEBUG = true;" />
</then>
<else>
<echo message="${xyz} is not enabled "/>
</else>
</if>
</target>
Я также пытался использовать полный путь к ant contrib, как показано ниже, но по-прежнему получаю те же ошибки.
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="/opt/apache-ant-1.9.11/lib/ant-contrib-1.0b3.jar"/>
</classpath>
Было бы очень полезно помочь мне решить эту проблему.
Ответ №1:
Согласно сайту antcontrib, taskdef с использованием antcontrib.properties только для Ant версии 1.5, поэтому вам нужно использовать antlib.xml вместо этого taskdef. И вам понадобится путь к вложенному классу, который вы пробовали, поэтому, вероятно, в вашем случае вам нужно что-то вроде:
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="/opt/apache-ant-1.9.11/lib/ant-contrib-1.0b3.jar"/>
</classpath>
</tsakdef>
Комментарии:
1. спасибо, что уделили время этому, чтобы опубликовать свой ответ. я попытался изменить ant в соответствии с запросом, но все равно получаю те же ошибки.
2. Это работает для меня с вашей задачей if! Попробуйте запустить ant -v и проверьте выходные данные на наличие проблем.