Компиляция Ant не копирует ресурсы - PullRequest
35 голосов
/ 30 апреля 2009

Я создал свой собственный build.xml, который имеет:

<target name="compile">
    <mkdir dir="build"/> 
    <javac destdir="build"> 
        <src path="src"/> 
    </javac>
</target>

<target name="build" depends="compile">
    <mkdir dir="dist"/>
    <jar destfile="dist/app.jar" basedir="build" />
</target>

<target name="run" depends="compile">
    <java classname="webserver.Loader" classpath="build" fork="true" />      
</target>

Отлично работает. Когда я вызываю ant run, он компилирует и запускает мое приложение, но у моего приложения есть пакет с иконками, и оно не перемещается в папку «build», поэтому мое приложение заканчивается исключением, что оно не может найти мои значки. Когда я перемещаю их сам, тогда это работает.

Я пытался использовать

<copy todir="build/app/icons">
    <fileset dir="src/app/icons"/>
</copy>

Это работает, но я хотел бы сделать это без команды копирования. Есть ли какой-либо параметр для Javac? Или что-то еще?

Спасибо за ответ.

Ответы [ 4 ]

46 голосов
/ 30 апреля 2009

Нет такого параметра. Вы можете копировать все виды файлов между вашими каталогами с помощью:

<copy todir="build">
    <fileset dir="src"
             includes="**/*.xml,**/*.properties,**/*.txt,**/*.ico" />
</copy>
23 голосов
/ 30 апреля 2009

Извините, вам нужно будет копировать не-Java файлы вручную. Ресурсы технически не являются «источником». Командная строка javac не будет копировать файлы ресурсов из вашего исходного каталога в выходной каталог, равно как и задача ant для javac.

12 голосов
/ 10 июля 2013

Вы можете сделать это, используя элемент fileset задачи jar вместо копирования файлов вручную. Например:

<jar destfile="dist/app.jar" basedir="build">
    <fileset dir="src" includes="app/icons/**" />
</jar>

Это скопирует все в src/app/icons/ в путь app/icons в вашем файле .jar.

4 голосов
/ 30 апреля 2009

Нет, нет. Задача копирования является правильным способом копирования ресурсов в папки сборки.

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