Расположение файла ресурсов в исполняемом фляге - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть проект maven, файлы ресурсов которого находятся в каталоге dir src/main/resources.Я заметил, что в Eclipse, когда я запускаю проект, исходные файлы копируются в target/classes без каталога ресурсов, только файлы в ресурсах dir.enter image description here

Но после того, как я экспортировал проект в исполняемый файл JAR с помощью Right clieck on the project -> Jar -> Runnable Jar, эти файлы ресурсов находятся в каталоге ресурсов:

enter image description here

Как видите, файлы ресурсов находятся в разных местах в двух случаях.

и приведенный ниже код хорошо работает в Eclipse, но не работает в исполняемых банках

getClassLoader().getResourceAsStream("database.properties")

Как решить эту проблему?Я хочу, чтобы приведенный выше код мог работать в обоих случаях.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Ответ прост - НЕ доверяйте Eclipse или какой-либо IDE для подобных случаев.Имеет значение только отдельная сборка, которая будет работать в отдельной среде.То же самое относится и к тестированию с использованием встроенных в приложение IDE или веб-серверов - это источник огромного количества потенциальных проблем

0 голосов
/ 30 ноября 2018

К сожалению, это два разных процесса сборки, и большинство проектов будут использовать одну систему сборки.Это много усилий для не много пользы.Вы также можете начать mvn package с затмения.Я бы порекомендовал Maven, так как это стандарт.Если вам необходимо это сделать, вот несколько идей

  • В процессе запуска проверьте, существует ли /resources, и добавьте к нему все пути
  • Если это один файл,вы можете протестировать и вернуться ко второму пути
  • Настройте ваш pom.xml, чтобы поместить папку ресурсов в / resource
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...