У меня есть следующее в моем build.xml:
<target name="compile.baz" depends="init">
<javac destdir="${build.dir}/classes" debug="on">
<compilerarg value="-Xlint:deprecation"/>
<src>
<pathelement location="${src.dir}/com/foo/bar/baz/" />
<pathelement location="${src.dir}/com/foo/bar/quux/" />
<!-- Need to exclude ${src.dir}/com/foo/bar/quux/dontwant/ -->
</src>
<classpath refid="classpath.jars" />
</javac>
...
</target>
Это главным образом делает то, что я хочу, за исключением того, что (поскольку в комментарии говорится) я не хочу файлы в
${src.dir}/com/foo/bar/quux/dontwant/
быть скомпилированным этой задачей (но я действительно хочу все остальное под ${src.dir}/com/foo/bar/quux/
быть скомпилированным в этой задаче).
Я - полный муравей n00b, и документация не была большим количеством справки ко мне. Я вижу несколько мест, где это говорит, что там являются различными, исключают/исключают элементы/атрибуты, но каждое изменение я могу думать или не имею никакого эффекта или привожу к ошибке как "вздор, не поддерживает 'исключить' атрибут".
Несколько человек предложили использовать
. Это не сработало с тем, как была указана моя задача. Ответ trashgod связан с шестым примером на этой странице , который дал мне представление о том, как реструктурировать мою спецификацию задачи.
Похоже, моя проблема была связана с тем, как я указывал исходные файлы. Вместо использования элементов
в
, вот так:
<src>
<pathelement location="${src.dir}/com/foo/bar/baz/" />
<pathelement location="${src.dir}/com/foo/bar/quux/" />
</src>
Я переключился на использование одного
с путем и затем набор элементов
, например:
<src path="${src.dir}" />
<include name="com/foo/bar/baz/**" />
<include name="com/foo/bar/quux/**" />
Функционально он идентичен, но совместим с использованием
:
<exclude name="${src.dir}/com/foo/bar/quux/dontwant/**"/>
(Фактически , Я удивлен, что то, что там было, вообще сработало.)
Попробуйте
<javac>
(...>
<exclude name="${src.dir}/com/foo/bar/quux/dontwant/*" />
(...)
</javac>
В остальном я не уверен, но вложенный элемент
должен работать в задаче Javac
. См. Шестой пример внизу.
Приложение: Шаблоны, включая нотацию **
, обсуждаются в Задачи на основе каталога .
<target name="compile.baz" depends="init">
<javac destdir="${build.dir}/classes" debug="on">
<compilerarg value="-Xlint:deprecation"/>
<src>
<pathelement location="${src.dir}/com/foo/bar/baz/" />
<pathelement location="${src.dir}/com/foo/bar/quux/" />
</src>
<exclude name="${src.dir}/com/foo/bar/quux/dontwant/**"/>
...
</javac>
...
</target>