Как загрузить ресурс из модуля зависимостей maven - PullRequest
1 голос
/ 18 октября 2011

у меня есть модуль maven BaseProject с классами Java в src / main / java. Некоторые классы загружают xml-файлы из папки src / main / resource. Это работает довольно хорошо.

У меня есть второй проект Maven TestProject *, который использует BaseProject в качестве зависимости. TestProject - это мой тестовый проект JUnit, поэтому классы есть только в src / test / java. Если я использую некоторые классы из BaseProject, которые загружают ресурс, я получаю нулевой указатель, потому что файл ресурса не может быть найден. Я предполагаю, что папка src / main / resource из моего TestProject рассматривается в этой ситуации как место для поиска файлов ресурсов.

Так как мне загрузить файлы ресурсов в BaseProject таким образом, чтобы он всегда выглядел в своей собственной папке src / main / resource?

А вот как я это делаю сейчас:

 InputStream inputStream = MyBaseClass.class
            .getResourceAsStream(
            "foo/bar/hello.xml" );
 String content = new Scanner( inputStream, "UTF-8" ).useDelimiter( "\\Z" ).next();

1 Ответ

1 голос
/ 18 октября 2011

getResourceAsStream("path") ищет ресурс относительно текущего класса.Если foo.bar является полным именем пакета, вы должны использовать абсолютный путь getResourceAsStream("/foo/bar/hello.xml")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...