Копирование файлов данных при сборке в Java / Eclipse - PullRequest
12 голосов
/ 10 апреля 2011

Наряду с моим источником Java, у меня есть несколько файлов данных, которые я хотел бы скопировать в каталог сборки, когда источник является сборкой. В настоящее время я не использую никаких инструментов сборки (например, maven или ant), но разрабатываю и запускаю модульные тесты исключительно из Eclipse. Могу ли я как-нибудь попросить Eclipse скопировать эти файлы данных при сборке моего Java-кода?

Ответы [ 3 ]

16 голосов
/ 10 апреля 2011

Сначала создайте новую исходную папку, назовите ее как res, вы можете использовать эту папку для хранения ваших файлов данных. Затем откройте раздел Java Build Path свойств проекта (из контекстного меню проекта). Выберите вкладку Источник . На этой вкладке вы можете контролировать выходные папки каждой из исходных папок. По умолчанию eclipse копирует все не-Java-файлы из исходной папки в выходной каталог во время сборки.

3 голосов
/ 10 апреля 2011

Иди с муравьем. Если честно, это лучшее решение для автоматизации процесса сборки приложений.

Я не часто использую 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>

 

Всего наилучшего, Боро.

1 голос
/ 10 апреля 2011

Eclipse на самом деле не предназначен для того, чтобы копировать вещи (у него может быть эта особенность, и я не знаю об этом).Как вы и говорили, это работа для Maven или Ant.Однако для ваших тестов JUnit у вас есть несколько вариантов ...

  • Открытие файлов данных на основе относительного пути проекта.
  • Использование getResourceAsStream (имя файла) и добавьте файлы данных в путь сборки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...