在我的一個項目中,我有資源存儲在/src/test/resources
(典型的maven目錄結構)中。這些資源正在被存儲在項目中的工具類使用。如何訪問多個項目中的常見資源文件
實用程序類本身正在從其他項目中使用(其他項目依賴於此項)。我將訪問資源這樣的:
final InputStream inputStreamDobs =
ClassLoader.class.getResourceAsStream("/dbunit/clear_db.xml");
,但因爲我用它來自不同項目的路徑是不正確的 - 它是相對於current project that is being built/tested
,而不是一個地方的工具類和資源。
任何想法如何處理這個?
我需要避免絕對路徑 - 想要有一種方法來定義相對於工具類的路徑。
我也不想在多個項目上覆制資源。乾杯。
編輯: 爲了給出一個方面,我有一個需要集成測試(清晰而完整的數據庫架構)之後被清除XML文件表的定義。集成測試位於多個項目中,但清晰腳本和資源文件對於所有這些文件都是相同的,並且位於共同的父項目中。
EDIT2:
獎金的問題:我想訪問常用的DTD文件(姑且稱之爲tables.dtd
)需要從多個其他項目的XML文件訪問。 (它將坐在共同的父項目中)。
目前我有它複製到多個項目,我用指令是指從XML:
<!DOCTYPE dataset SYSTEM "src/test/resources/dbunit/dobs.dtd">
如何把它指向在不同的項目中的文件?
怎麼回事?我使用相對路徑..它是相對於項目根。 (?) – FazoM
getResourceAsStream嘗試從classpath加載資源。這是絕對的,因爲它開始在每個類路徑條目的根目錄搜索。相對路徑不會以斜槓開始,並會相對於當前包進行搜索。所以你的文件系統的路徑並不是絕對的,但在Java意義上是絕對的。 – Drunix
好的。很公平 – FazoM