Наряду с моим источником java, у меня есть некоторые файлы данных, которые я бы хотел скопировать в каталог сборки, когда источник создается. В настоящее время я не использую никаких инструментов сборки (например, maven или ant), но разрабатываю и запускает модульные тесты исключительно из Eclipse. Могу ли я каким-либо образом попросить Eclipse скопировать эти файлы данных при сборке моего java-кода?
Копирование файлов данных при сборке в Java/Eclipse
Ответ 1
Сначала Создайте новую исходную папку, вызовите ее как res, вы можете использовать эту папку для хранения ваших файлов данных. Затем откройте раздел "Путь сборки Java" свойств проекта (из контекстного меню проекта). Выберите вкладку "Источник". На этой вкладке вы можете управлять выходными папками каждой из исходных папок. По умолчанию eclipse копирует все файлы, отличные от java, в исходную папку для вывода каталога во время сборки.
Ответ 2
Перейдите с помощью Ant. Честно говоря, это лучшее решение для автоматизации процесса создания приложений.
Я не часто использую Eclipse. Но я уверен, что должен быть файл сборки (build.xml), где вы можете добавить что-то вроде кода ниже и всегда выполнять его при создании своего приложения.
Вот как я делаю это в своем файле сборки для одного из моих проектов. Я копирую здесь две папки со всем их содержимым на dist (который в NetBeans служит в качестве папки распространения, где создается jar приложения), поэтому я могу легко запустить приложение за пределами среды IDE.
Помните, что целевое имя в Eclipse может отличаться. Но вы, вероятно, должны найти правильный вариант, описанный в файле сборки.
<!-- to copy data & images folders' contents to dist folder on build. -->
<target name="-post-jar" description="Copying Images">
<property name="images.dir" value="${dist.dir}/images" />
<property name="data.dir" value="${dist.dir}/data" />
<copy todir="${images.dir}">
<fileset dir="./images" />
</copy>
<echo level="info" message="Images folder content was copied."/>
<copy todir="${data.dir}">
<fileset dir="./data" />
</copy>
<echo level="info" message="Data folder content was copied."/>
</target>
Все лучшее, Боро.
Ответ 3
Eclipse на самом деле не предназначен для копирования вещей (у него может быть эта функция, и я не знаю об этом). Как вы сказали, это работа для Maven или Ant. Однако для ваших тестов JUnit у вас есть несколько вариантов...
- Откройте файлы данных на основе относительного пути проекта.
- Используйте getResourceAsStream (имя файла) и добавьте файлы данных в путь сборки