В моем проекте 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-plugin и плагина удаленных ресурсов, но это большая боль, так как все модули должны включать XML-плагин monster.
Почему бы не упростить вопрос до этого: Как я могу добавить JAR-файл зависимостей в список ресурсов?
- core.jar содержит некоторые ресурсы в папке / resources. Запустив core.jar, я вижу / resources в списке ресурсов.
- impl.jar зависит от core.jar. Однако после запуска / resources его нет в списке ресурсов, что приводит к хаосу.
Это должно быть достаточно просто, но как я могу это сделать? Я часами пытался найти простой способ сделать это, но безрезультатно.