我觉得我正在绕圈转,所以希望它相对容易解决。
对于我正在开发的应用程序,我想要一组包含配置信息的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中运行。
任何帮助或指导,将不胜感激。
最佳答案
您错过了标签excludes
<configuration>
<excludes>
<exclude>resources/**/*.xml</exclude>
</excludes>
</configuration>