В моем проекте Maven есть один модуль (ядро), который имеет несколько ресурсов для своих классов. При запуске классов внутри модуля он может получить свои собственные ресурсы. Все работает нормально.
В тех случаях, когда разрывы вещей - это когда другой модуль, который зависит от ядра, пытается запустить этот класс. Папка, в которой Java ищет ресурсы, - это этот модуль, а не основной модуль. Таким образом, класс терпит неудачу.
Вкратце: как я могу получить доступ к ресурсам зависимости?
Я экспериментировал с попыткой сделать это, объявив в Core JAR Manifest Class-Path: .
. Однако при перечислении ресурсов, доступных с помощью JSHookLoader.class.getClassLoader().getResources("");
(JSHookLoader находится в Core, если это что-то означает), я получаю:
Resource: W:\programming\quackbot-hg\impl\target\classes
File rebel.xml
Resource: W:\programming\maven-repo\org\quackbot\core\3.5-SNAPSHOT
File core-3.5-SNAPSHOT.jar
File core-3.5-SNAPSHOT.pom
File maven-metadata-local.xml
File _maven.repositories
Это, конечно, усложняет ситуацию, поскольку я ожидал, что JAR сам будет в Classpath, а не в каталоге JAR в
Любые предложения?
Возвращаясь к этому проекту, у меня все еще есть эта проблема. Другие руководства говорили о том, как использовать плагин maven-assembly-plug-in и плагин удаленных ресурсов, но это очень больно, поскольку все модули должны включать XML файл монстра.
Почему бы мне не упростить вопрос: как я могу добавить JAR зависимостей в список ресурсов?
- В core.jar есть несколько ресурсов в папке/ресурсах. Запуск core.jar Я могу увидеть/ресурсы в списке ресурсов.
- impl.jar зависит от core.jar. После запуска, хотя /resources не входит в список ресурсов и, следовательно, вызывает хаос.
Это должно быть достаточно простым, но как я могу это сделать? Я трачу часы, пытаясь понять простой способ сделать это, но безрезультатно.