У меня есть простой проект java maven. Один из моих классов при выполнении должен загрузить файл конфигурации xml из пути к классам. Я не хочу упаковывать такой файл xml при создании jar, но я хочу включить XML файл по умолчанию в zip-сборку под подпапкой conf, и я также хочу, чтобы этот xml-код по умолчанию был доступен в модульных тестах для проверки на него.
Как я вижу, это два возможных места по умолчанию xml:
-
src/main/resources/conf/default.xml
-
src/main/conf/default.xml
Оба решения требуют специальных действий pom:
-
В решении 1 я получаю автоматическую копию в целевой папке во время сборки, что означает, что она доступна при тестировании, но я также получаю ее в выпущенной банке, которую я не хочу.
-
В решении 2 я получаю банку, как я ее хочу (без xml), но мне нужно вручную скопировать xml в целевую папку, которая будет доступна для тестирования. (Я не хочу добавлять подпапки src в тестовый класс. Я думаю, что это плохая практика).
Вопрос: какое лучшее решение для этих двух?
- Если правильное значение равно 2, каков наилучший способ его скопировать в целевую папку?
- Есть ли другое решение лучше и чаще, чем эти два?
(Я также читаю Где я должен поместить файлы конфигурации приложения для проекта Maven?, но я хотел бы узнать самое "правильное решение" из "конвенции более конфигурация", и эта ссылка предоставляет некоторые варианты типа конфигурации, но не любые ориентированные на конвенцию. Возможно, в любом случае нет никого, кроме как я спрашиваю. Кроме того, предоставленные решения включают плагин AntRun и плагин appAssembler, и мне интересно, могу ли я это сделать без их).