Различные цели для разных ОС с Ant
У меня есть цель ant, которую я не хочу вызывать, если я не запускаю ant в Linux (не вызывается в Windows)
<target name="jar.all" depends="clean,compile.nic,jar,jar.resources"/>
Цель, которую я не хочу вызывать в Windows: compile.nic
Как я могу это сделать?
Ответы
Ответ 1
Вставьте свойство if в свою цель compile.nic.
<target name="compile.nic" if="windowsos">
И используйте эти условия перед запуском вашей цели
<condition property="windowsos">
<os family="windows" />
</condition>
<condition property="linuxos">
<os family="unix" />
</condition>
Ответ 2
Вот пример реального мира для команд Windows и UNIX. ELSE улучшает предыдущие ответы.
<condition property="maven.executable" value="mvn.bat" else="mvn">
<os family="windows" />
</condition>
<target name="clean">
<exec executable="${maven.executable}">
<arg value="clean" />
</exec>
</target>
Ответ 3
Можно ли выполнить задачу копирования Ant для ОС OS?
Кроме того, некоторые задачи поддерживают атрибут os
. например exec:
<exec executable="cmd" os="windows"/>
Ответ 4
Вы можете использовать условие os
для установки свойства, а затем пропустить цель, добавив атрибуты if
или unless
(в зависимости от того, как вы определяете свое свойство)