Как сделать maven использовать тестовые ресурсы
когда я использую команду: mvn test, maven использует основные ресурсы вместо тестовых в src/test/resources.
Как я могу заставить maven использовать тестовые ресурсы, а не основные ресурсы?
EDIT: я использую Classloader для поиска моих ресурсов. Classloader может найти ресурсы из моего каталога src/test/resources, но он сначала ищет в src/main/java ресурс.
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream file =loader.getResourceAsStream("resource.xml");
Или есть ли какое-либо свойство, которое я могу использовать во время выполнения команды maven, которая будет определять приоритет пути к классам?
РЕДАКТИРОВАТЬ 2: Я выяснил проблему, она загружается из теста/ресурсов для теста, однако мой тест включает развертывание webapp (интеграционное тестирование), а оттуда, когда webapp обращается к ресурсу, он использует src/main/Ресурсы. Есть ли способ изменить порядок пути к классам или сделать один за другим для WAR, развернутого в контейнере причала?
Ответы
Ответ 1
Разве ты не можешь назвать это другим именем?
Loader не знает, что ваш ресурс .xml находится в src/main/resources
или src/test/resources
, это только путь поиска. Я думаю, проблема в том, что это не Maven, вот как должен работать Loader и он работает. От Maven вы могли бы отказаться от всех классов/ресурсов от src/main/resources
при выполнении этапа тестирования?
Ответ 2
Проверьте целевой/тестовый класс на resource.xml.
Ваш файл должен быть здесь. Если вы найдете этот файл, я думаю, что одно и то же имя является проблемой. Попробуйте переименовать файл, например, в test-resource.xml. Если файл не существует в каталоге тестовых классов, вы должны настроить управление ресурсами в maven pom.xml. Используйте maven-resouce-plugin.
Надеюсь, что это поможет.