2012-11-12 48 views
0

最近我一直在玩編寫插件,然後使用ServiceLoader加載。爲了讓ServiceLoader找到我的插件,META-INF/services /下的我的jar文件中必須包含一個文本文件。文本文件必須在ServiceLoader「查找」的接口後面命名,並且必須包含實現類的規範名稱。所有這些工作絕對沒問題,但這種方法的一個非常惱人的問題:每一個項目建成時間,我必須手動文本文件中添加/服務/文件夾以及到罐子(用WinRAR) 。這是發展過程中極其繁瑣,因爲我必須不斷地重新構建,以測試的東西項目,這意味着我也有手工每一次到該文件夾​​和文本文件加爲好。如何在構建過程中包含自定義文本文件

我真的希望有一種方法讓Java在構建項目時自動添加META-INF/services /文件夾以及文本文件,因爲這會讓我瘋狂! :)

順便說一下,我使用Netbeans(afaik)在內部使用Ant來自動化構建過程。我想這個信息可能與我的問題有關。

謝謝!

+1

爲什麼不在您的「源代碼包」中創建一個META-INF/services'文件夾? – MadProgrammer

回答

2

右鍵點擊你的 「源包」,選擇 「新建|其他」

enter image description here

從 「類別」 欄中,選擇 「其他」。從 「文件類型」 中選擇 「文件夾」

enter image description here

說出你的文件夾...

enter image description here

中提琴:d

enter image description here

現在右鍵點擊新文件夾並遵循相同的基本步驟,但是這次使用「空文件」來創建e您的文本文件

+0

哇,謝謝,那當然是作品! 我以前試圖添加META-INF作爲一個包,而不是作爲一個文件夾,因爲連字符不起作用。 我可能有時真的很愚蠢,幸運的是像你這樣的人可以幫助那個;​​)再次感謝! – thousands

+0

我爲我們的插件API使用了類似的方法;) – MadProgrammer

相關問題