2010-01-16 89 views
1

我有一個密鑰庫文件,我希望可以在我的應用程序中使用幾個類。我創建了一個.config文件,它指向密鑰庫文件的名稱,密碼和其他信息。在JAR和開發中處理資源文件路徑

這是一個基於Maven的項目,所以keystore位於/ src/main/resources中。我建立一個jar文件並將文件移動到jar中的/ resources。我想讓.config文件說一些類似「resources/keystore.jks」的東西。

如何解析config文件,因此:

  1. 用途的應用程序代碼/src/main/resources/keystore.jks發展。
  2. 測試代碼使用/src/test/resources/keystore.jks。
  3. 罐子裏的用途/資源。

回答

3

這是一個基於Maven的項目,所以keystore位於/ src/main/resources。我建立一個jar文件並將文件移動到jar中的/ resources。我想讓.config文件說一些類似「resources/keystore.jks」的東西。

你爲什麼這樣做?你不應該移動它。只要將該密鑰庫放在resources/resources/keystore.jks中,如果您希望它在類路徑中的/resources中可用。

如何解析config文件,因此:

  1. 用途/src/main/resources/keystore.jks在發展 應用程序代碼。
  2. 使用/src/test/resources/keystore.jks爲 測試代碼。
  3. 罐子裏的用途/資源。

如果你按照我以前的建議,那麼你沒有什麼特別的事情要做。在src/main/resources

  1. 資源在正常類路徑中src/test/resources
  2. 資源是在測試類路徑是可用的(runnign mvn test當這對正常類路徑優先)
  3. src/main/resources是資源路徑的根。如果您想要在/my/package/my.properties下提供某些東西,請將其放入src/main/resources/my/package/my.properties

如果真的這不包括您的需求,那麼看看resources filtering。過濾可以與profiles結合使用以獲得更復雜的內容。或者,您也可以使用多個過濾器並通過傳遞屬性來選擇合適的過濾器。但是,正如我所說,我不確定你需要這個。