Я занимаюсь разработкой настольного приложения Java и хотел бы иметь внешний файл configuration.xml.
Я разрабатываю приложение с помощью Netbeans и пытаюсь добавить файл configuration.xml в каталог dist, чтобы он находился в рабочей папке приложения. Но когда Netbeans выполняет свою чистую операцию, он удаляет каталог dist,
Где я должен поместить этот файл configuration.xml, чтобы он не был удален и будет существовать в каталоге запуска приложения.Netbeans и внешние файлы конфигурации
ответ
Вы можете добавить это к вашему build.xml:
<target name="-post-jar">
<copy todir="${dist.jar.dir}">
<fileset dir="resources" includes="**"/>
</copy>
</target>
Теперь вы можете поместить файл configuration.xml в «ресурсы» папку (что вам нужно создать) в проекте и все файлы он будет скопирован в папку dist во время процесса сборки.
Мне удалось заставить это работать, но я не смог получить -post-jar для запуска без явного ввода его в качестве зависимости в основной конфигурации сборки. Это в Netbeans 7.0.1 для проекта Rich Client.
Вместо этого в build.xml для модуля Netbeans, где я хочу, чтобы иметь внешние файлы ресурсов (в основном .txt файлы, которые пользователь может потенциально отредактировать позже), я вошел в следующее:
<target name="netbeans-extra">
<echo>Copying resources files to build cluster directory...</echo>
<mkdir dir="${cluster}/resources"/>
<copy todir="${cluster}/resources">
<fileset dir="resources" includes="**"/>
</copy>
</target>
Тогда я создайте новый каталог в верхней директории моего модуля (прямо рядом с src, release, build), называемый «ресурсами», и поместите туда мои .txt-файлы.
Когда вы создаете этот модуль, netbeans-extra будет вызываться как зависимость и выполнять создание папки «resources» в основной директории сборки/кластера проекта, а затем копировать содержимое проекта каталог ресурсов.
В конечном счете, когда вы создадите дистрибутив для своего проекта, вы найдете каталог ресурсов, расположенный рядом с каталогом модулей проектов, что делает его красивым и аккуратным.
Правильный код ...
<target name="-pre-jar">
<echo>Copying resources files to build directory...</echo>
<mkdir dir="${dist.jar.dir}/resources"/>
<copy todir="${dist.jar.dir}/resources">
<fileset dir="resources" includes="**"/>
</copy>
</target>
Добавьте это в главном build.xml (не nbproject \ строить-impl.xml). Вы также можете заменить «-pre-jar» на «-post-jar»