2013-02-08 50 views
1

我正在開發一個自定義的maven插件。當我閱讀我的自定義插件的屬性文件時,一切都很好,但是當我在不同的項目中將它作爲插件運行時,我如何獲得該項目屬性文件,它總是像往常一樣查看其本身的資源目錄,因爲:從不同的項目訪問屬性文件

I有:

Properties allProperties = new Properties(); 
allProperties.load(this.getClass().getResourceAsStream("/tokens.properties")); 

,我試過了:

Properties allProperties = new Properties(); 
ClassLoader loader = Thread.currentThread().getContextClassLoader(); 
allProperties.load(loader.getResourceAsStream("/tokens.properties")); 

,但沒有奏效。有任何想法嗎?

PS:當我運行它時,它從插件屬性文件中讀取。我的屬性文件正在

src/main/resources 

我用我的勁歌:

<build> 
    ... 
    <resources> 
     <resource> 
      <directory>src/main/resources/</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
    ... 
</build> 

和我的屬性文件:

project.version = ${project.version} 
+0

什麼目錄包含「tokens.properties」? –

+0

@代碼大師我編輯了我的問題。 – kamaci

+0

是否想從插件的JAR中讀取屬性文件或從Eclipse中加載的當前項目的目錄中讀取屬性文件? –

回答

5
Properties allProperties = new Properties(); 
ClassLoader loader = Thread.currentThread().getContextClassLoader(); 
allProperties.load(loader.getResourceAsStream("/tokens.properties")); 

你接近。這確實是正確的類加載器,但路徑錯誤。刪除前導斜槓。

allProperties.load(loader.getResourceAsStream("tokens.properties"));