Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Maven(和Eclipse)管理Jar文件外部的资源_Java_Eclipse_Maven_Jar - Fatal编程技术网

Java 使用Maven(和Eclipse)管理Jar文件外部的资源

Java 使用Maven(和Eclipse)管理Jar文件外部的资源,java,eclipse,maven,jar,Java,Eclipse,Maven,Jar,我觉得我在绕圈子,所以希望这是一个相对容易解决的问题 对于我正在开发的应用程序,我希望有一组包含配置信息的XML文件。我希望这些文件可以编辑,而无需重新编译jar文件。所以我希望将它们放在一个名为resources的文件夹中,与jar文件位于同一个文件夹中。 所以我想要的结构是 root | - app.jar | - resources | - config | - config1.xml - config2.xml 我已经设法调整了pom.xml,以便它可以

我觉得我在绕圈子,所以希望这是一个相对容易解决的问题

对于我正在开发的应用程序,我希望有一组包含配置信息的XML文件。我希望这些文件可以编辑,而无需重新编译jar文件。所以我希望将它们放在一个名为resources的文件夹中,与jar文件位于同一个文件夹中。 所以我想要的结构是

root
|
- app.jar
|
- resources
  |
  - config
    |
    - config1.xml
    - config2.xml
我已经设法调整了pom.xml,以便它可以使用
maven资源插件中的
copy resources
将资源复制到我的目标文件夹中

我还添加了我的资源目录作为一个资源(以便它在eclipse中工作),使用

并使用maven jar插件中的manifestEntries将我的资源目录包含在jar清单的类路径上(我想)

<manifestEntries>
    <Class-Path>. resources</Class-Path&>
</manifestEntries>

. 资源
并试图使用

<configuration>
    <exclude>resources/**/*.xml</exclude>
</configuration>

参考资料/***.xml
它们仍在被编译到jar文件中。如果我手动将它们从jar文件中删除,那么在尝试访问资源时会出现空指针异常

所以我想要实现的,需要帮助的是 这是一种获得我在上面大致概述的外部资源结构的方法,这些外部资源没有编译到jar文件中,但是可以通过jar中相同根目录中的代码访问(通过类路径),并且仍然在eclipse中运行


任何帮助或指导都将不胜感激。

您错过了标签
排除

<configuration>
    <excludes>
       <exclude>resources/**/*.xml</exclude>
    </excludes>
</configuration>

参考资料/***.xml

您可以像这样复杂地排除所有文件夹:

<excludes>
        <exclude>config/</exclude>
</excludes>

配置/
或者只是配置文件中的所有xml文件

 <excludes>
     <exclude>**/config/*.xml</exclude>
 </excludes>

**/config/*.xml

嗨,谢谢你,这是我没有注意到的。我确实在pom中添加了“”,但我仍然拥有jar文件中包含的资源。我目前正在工作,但今晚会尝试发布完整的pom,以防出现明显的问题。你是如何解决这个问题的?唉,我还没有设法解决。它用于一个个人项目,这个项目已经有点半途而废,所以目前所有的配置都作为一个整体捆绑到jar文件中。也许在某个时候会再看一遍,但我还没弄明白
<excludes>
        <exclude>config/</exclude>
</excludes>
 <excludes>
     <exclude>**/config/*.xml</exclude>
 </excludes>