Я хочу использовать FileSet, чтобы точно указать, какие файлы я хочу скомпилировать с помощью задачи Javac. Я не хочу никакого скрытого поведения. Однако мои попытки провалились. Вот что у меня так далеко:
FileSet, который содержит все мои исходные файлы.
<fileset id="srcfiles" dir="${srcdir}">
<include name="**/*.java"/>
</fileset>
И цель, которая пытается передать его javac.
<target name="build">
<javac srcdir=".">
<fileset refid="srcfiles"/>
</javac>
</target>
Это дает мне эту ошибку: javac doesn't support the nested "fileset" element.
После прочтения документации по Ant я попытался изменить самый внутренний тег с fileset
на sourcepath
. Это сработало в том смысле, что файлы были скомпилированы, но все равно выдало ошибку: srcfiles doesn't denote a path
. Я думаю, что источник был скомпилирован только из-за неявных правил.
Как я могу явно указать javac, какие отдельные файлы я хочу скомпилировать? Или это просто не так, как муравей должен работать? Я пришел из C ++, где идентификация исходных файлов является важной частью процесса сборки. Однако, учитывая требования Java к именованию файлов и структуре каталогов, возможно, неявное правило шаблона **/*.java
охватывает все варианты использования.