【发布时间】:2013-10-14 12:13:30
【问题描述】:
我觉得我在绕圈子,所以希望它相对容易解决。
对于我正在开发的应用程序,我想要一组包含配置信息的 XML 文件。而且我希望这些是可编辑的,而无需重新编译 jar 文件。所以我想要将它们放在一个名为资源的文件夹中,该文件夹与 jar 文件位于同一文件夹中。 所以我的预期结构类似于
root
|
- app.jar
|
- resources
|
- config
|
- config1.xml
- config2.xml
我已设法调整我的 pom.xml,以便它将资源使用 copy-resources 中的 maven-resource-plugin 复制到我的目标文件夹中。
我还使用
将我的资源目录添加为资源(以便它在 Eclipse 中工作)<resources>
<resource>
<directory>resources</directory>
</resource>
</resources>
以便我可以使用它们访问它们
getClass().getResource("/config/xml/config1.xml");
并使用 maven-jar-plugin 中的 manifestEntries 将我的资源目录包含在 jar 清单的类路径中(我认为)。
<manifestEntries>
<Class-Path>. resources</Class-Path&>
</manifestEntries>
并尝试使用
将我的资源从编译到 jar 文件中排除<configuration>
<exclude>resources/**/*.xml</exclude>
</configuration>
它们仍在编译到 jar 文件中。如果我手动将它们从 jar 文件中删除,那么在尝试访问资源时会出现空指针异常。
所以我想要实现并且需要帮助弄清楚的是 一种获取我上面粗略概述的外部资源结构的方法,这些外部资源没有编译到 jar 文件中,但可以通过同一根目录中的 jar 中的代码访问(通过类路径),并且仍然在 eclipse 中起作用。
任何帮助或指导将不胜感激。
【问题讨论】:
-
你是如何解决这个问题的?
-
唉,我没能做到。它是一个个人项目,它稍微被搁置了,所以目前所有的配置都捆绑到了整个 jar 文件中。可能会在某个时候再看一遍,但我还没有弄清楚