簡體   English   中英

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

[英]Managing resources that will be external to a Jar file using Maven (and Eclipse)

我覺得我會圍着這個圈子走,所以希望它能夠相對容易地解決。

對於我正在開發的應用程序,我想要一組包含配置信息的XML文件。 我希望這些可以編輯,而無需重新編譯jar文件。 所以我想要的是將它們放在與jar文件相同的文件夾中名為resources的文件夾中。 所以我想要的結構是這樣的

root
|
- app.jar
|
- resources
  |
  - config
    |
    - config1.xml
    - config2.xml

我已設法調整我的pom.xml,以便它使用maven-resource-plugin copy-resources到我的目標文件夾中。

我還添加了我的資源目錄作為資源(以便它在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>

您可以復雜地排除所有文件夾,如下所示:

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

或者只是來自config的所有xml文件

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM