Я пытаюсь заставить Ant скомпилировать только части моего проекта в зависимости от свойства (module
), которое я установил в файле свойств. Это мое первое "настоящее" взаимодействие с муравьем, поэтому, пожалуйста, потерпите меня :).
Я не хочу создавать несколько целей, потому что единственное , которое отличается между модулями в процессе сборки, - это количество классов, которые компилируются, и некоторые ресурсы.
Теперь вот моя цель компиляции:
<target name="compile.classes" depends="init" description="compile the source">
<mkdir dir="${classes}"/>
<mkdir dir="${lib}"/>
<copy todir="${classes}">
<fileset dir="${src}">
<patternset refid="resources"/>
</fileset>
</copy>
<echo message="${classes}"/>
<!-- Compile the java code from ${src} into ${classes} -->
<javac srcdir="${src}" destdir="${classes}">
<!-- Conditions for compiling the separate modules -->
<classpath refid="libs"/>
</javac>
</target>
Я хочу получить некоторые условные выражения, основанные на значении свойства module
, которое я уже установил. Что-то вроде:
<javac srcdir="${src}" destdir="${classes}">
<if>
<equals arg1="${module}" arg2="gpl" />
<then>
<patternset refid="gpl-classes"/>
</then>
<elseif /> <!-- etc -->
</if>
</javac>
Несмотря на то, что я хорошо установил ant-contrib (где-то в другом месте я проверил тег if с простым эхо, и это сработало), он не позволяет размещать условные выражения внутри тегов javac
. Кроме того, он не позволяет мне помещать их в теги patternset
.
Можно ли как-то обусловить, какие классы я компилирую в зависимости от свойства?