2013-01-18 119 views
0

我有兩個獨立的項目A和B都使用maven構建。項目B更多的是一個資源項目。我正在使用maven爲此項目打包jar。是否將maven依賴項添加到類路徑中?

現在對於項目A,我添加項目B的jar作爲依賴項。我將如何從項目B的罐子中訪問項目A中的某個Java文件的資源文件。

我已經確認在Maven的本地存儲庫中安裝了用於項目B的jar。

我搜查了很多,但沒有一個答案似乎有幫助。

以下爲

SRC 目錄結構| _ 主要 | _ 資源 | _ DIR1 | _ DIR2 | _ DIR3 | _ Some_config_file.txt

我想從項目A訪問這個Some_config_file.txt,我如何找到相對於類路徑的路徑

任何幫助/建議?

回答

0

是的,src/main/resources的所有文件都是最終JAR的一部分,它們與類的路徑相同。換句話說,你的_Some_config_file.txt將登陸_dir1._dir2._dir3.Foo.class編譯的類。

所有這些項目都放在平坦的CLASSPATH上,即每個JAR的內容在CLASSPATH上共享相同的名稱空間。爲了讀取這樣的文件,你需要使用ClassLoader

getClass().getResourceAsStream("/_dir1/_dir2/_dir3/_Some_config_file.txt`); 
+0

我將使用哪個類的類加載器?上面上下文中的jar文件僅用於打包所有資源和虛擬hello世界類。 – MadEyeMoody85

+0

@ MadEyeMoody85:如果你幸運的話,可以使用任何*'ClassLoader'(任何類)。在更復雜的環境中(使用類加載器層次結構),您可能需要考慮一段時間哪個類由相同的'ClassLoader'加載。 –

+0

我試過InputStream resourceStream = ClassLoader.getSystemResourceAsStream(「/ dir1/dir2/dir3/dir4/some-file-name.txt」);並返回null。 – MadEyeMoody85

相關問題