ANT: игнорировать определенные файлы из источников javac - PullRequest
0 голосов
/ 23 января 2019

В настоящее время мы определяем путь с помощью

<path id="sources.production">
  <pathelement path="src/module1"/>
  <pathelement path="src/module2"/>
  ...
</path>

, а затем компилируем с использованием

<javac ...>
   <src refid="sources.production"/>
   <classpath refid="classpath.production">
</javac>

Теперь мы создадим несколько измененных .java файлов (исходные файлы в src/module2) до того, какэтот <javac> вызов и поместил их перед другими источниками:

<path id="sources.production">
  <pathelement path="generated-sources"/>
  <pathelement path="src/module1"/>
  <pathelement path="src/module2"/>
  ...
</path>

К сожалению, компиляция теперь не удалась, потому что исходный и измененный .java файлы оба передаются в задачу javac.Как легко исключить оригинальные исходные файлы из исходников javac без больших затрат?

1 Ответ

0 голосов
/ 26 января 2019

вам нужен промежуточный шаг, когда вы копируете все свои исходные файлы в новое местоположение и переопределяете их на сгенерированные, а затем используете это новое местоположение в качестве исходной папки для javac.

это может выглядеть примерно так:

<path id="sources.4compile" location="all-sources" />

<target name="prepare-4compile">

    <!-- clean -->
    <delete dir="all-sources"/>
    <mkdir dir="all-sources"/>

    <copy todir="all-sources">
        <fileset dir="src/module1"/>
        <fileset dir="src/module2"/>
        <fileset dir="generated-sources"/>
    </copy>

</target>

<target name="compile" depends="prepare-4compile">
    <javac ...>
       <src refid="sources.4compile" /> 
       <classpath refid="classpath.production" />
    </javac>
</target>

другим способом, вы можете указать набор файлов для javac, отключив механизм поиска по умолчанию в javac, как предложено здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...