ANT: игнорировать определенные файлы из источников javac
В настоящее время мы определяем путь с
<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 ответ
Вам нужен промежуточный шаг, который вы копируете все ваши исходные файлы в новое место и перезаписываете их сгенерированными, а затем используете это новое местоположение как исходную папку для 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, как предлагается здесь.