NetBeans и внешние файлы конфигурации
Вопрос
Я занимаюсь разработкой настольного Java-приложения и хотел бы иметь внешний файл configuration.xml.
Я разрабатываю приложение с использованием Netbeans и попытался добавить файл configuration.xml в каталог dist, чтобы он находился в рабочей папке приложения. Но когда Netbeans выполняет свою чистую операцию, он удаляет каталог dist,
Где я должен поместить этот файл configuration.xml, чтобы он не был удален и существовал в каталоге запуска приложения.
Решение
Вы можете добавить это в свой build.xml:
<target name="-post-jar">
<copy todir="${dist.jar.dir}">
<fileset dir="resources" includes="**"/>
</copy>
</target>
Теперь вы можете поместить свой файл configuration.xml в папку 'resources' (которую вам нужно создать) в своем проекте, и все файлы в нем будут скопированы в папку 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) под названием 'resources' и помещаю туда мои файлы .txt.
Когда вы делаете сборку на этом модуле, netbeans-extra будет вызываться как зависимость и будет выполнять создание папки 'resources' в главном каталоге build / cluster проекта с последующим копированием содержимого ресурсов проекта. каталог там.
В конечном итоге, когда вы создаете дистрибутив для своего проекта, вы найдете каталог ресурсов, расположенный прямо рядом с каталогом модулей вашего проекта, что обеспечивает удобную и аккуратную компоновку.
Правильный код ...
<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 \ build-impl.xml). Вы также можете заменить " -pre-jar " с "-post-jar"