我觉得我已经围成一圈,所以希望它能够相对容易地解决。
对于我正在开发的应用程序,我想要一组包含配置信息的XML文件。我希望这些可以编辑,而无需重新编译jar文件。所以我想要的是将它们放在与jar文件相同的文件夹中名为resources的文件夹中。 所以我想要的结构就像是
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中运行。
任何帮助或指导都将不胜感激。
答案 0 :(得分:0)
您遗失了标记excludes
<configuration>
<excludes>
<exclude>resources/**/*.xml</exclude>
</excludes>
</configuration>
答案 1 :(得分:0)
您可以复杂地排除所有这样的文件夹:
recyclerview-v7
或仅来自config
的所有xml文件<excludes>
<exclude>config/</exclude>
</excludes>