使用依赖项的资源?
在我的 Maven 项目中,有一个模块(核心)为其类提供了一些资源。在模块内运行类时,它能够获得自己的资源。一切都很好。
当另一个依赖于核心的模块试图运行该类时,东西就会中断。Java 在其中查找资源的文件夹是此模块,而不是核心模块。所以这个类失败了。
简而言之:如何访问依赖项的资源?
我已经尝试过通过在Core的JAR Manifest中声明来做到这一点。但是,当列出可用的资源时(JSHookLoader在Core中,如果它意味着什么),我得到:Class-Path: .
JSHookLoader.class.getClassLoader().getResources("");
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本身在类路径中,而不是JAR所在的目录中。
有什么建议吗?
回到这个项目,我仍然有这个问题。其他指南已经讨论了使用maven-assembly-plugin和远程资源插件,但这非常痛苦,因为所有模块都必须包含monster插件XML。
我为什么不把问题简化为:如何将依赖项 JAR 添加到资源列表中?
- core.jar在文件夹/resources下有一些资源。运行核心.jar我可以在资源列表中看到 /resources。
- impl.jar取决于核心.jar。运行它时,尽管/resources不在资源列表中,因此会造成严重破坏。
这应该很简单,但我该怎么做呢?我花了几个小时试图找出一种简单干净的方式来做到这一点,但无济于事。