我觉得我正在绕圈转,所以希望它相对容易解决。

对于我正在开发的应用程序,我想要一组包含配置信息的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>

07-24 09:49
查看更多