Как я могу исключить источники в задаче javac у муравья?

У меня есть следующее в моем 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, и документация не была большим количеством справки ко мне. Я вижу несколько мест, где это говорит, что там являются различными, исключают/исключают элементы/атрибуты, но каждое изменение я могу думать или не имею никакого эффекта или привожу к ошибке как "вздор, не поддерживает 'исключить' атрибут".

16
задан manouti 17 July 2014 в 07:10
поделиться

3 ответа

Несколько человек предложили использовать . Это не сработало с тем, как была указана моя задача. Ответ 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/**"/>

(Фактически , Я удивлен, что то, что там было, вообще сработало.)

17
ответ дан 30 November 2019 в 16:00
поделиться

Попробуйте

<javac>
(...>
<exclude name="${src.dir}/com/foo/bar/quux/dontwant/*" />
(...)
</javac>
5
ответ дан 30 November 2019 в 16:00
поделиться

В остальном я не уверен, но вложенный элемент должен работать в задаче 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>
5
ответ дан 30 November 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: