2015-08-21 78 views
0

我將文件資源(通過src/main/resources)包含在作爲JAR發佈的Gradle插件中。如何獲取jar文件的文件句柄?

在使用該庫的客戶端中,如何訪問這些文件?該file方法似乎並不支持jar:file方案:

> Failed to apply plugin [class 'sc.snd.gradle.library.codequality.CodeQualityPlugin'] 
> Cannot convert URL 'jar:file:/Users/matthiaskappler/.m2/repository/sc/snd/gradle/library-plugin/0.1/library-plugin-0.1.jar!/rules/checkstyle/modules.xml' to a file. 

在文檔爲file它確實是說,它只能處理普通file://網址。

有什麼方法可以訪問這些文件,而不必先將JAR分解到客戶端中?這似乎很混亂。

+0

不確定這是否有用? http://gradle.1045684.n5.nabble.com/referencing-a-resource-in-gradle-td4359379.html –

+0

@Matthias,似乎你應該通過'classLoader'讀取這個文件。你試過了嗎? – Opal

+0

感謝您回覆!問題不是加載資源本身,但工作正常。但是,'getResource'返回一個文件URL,其格式爲'jar:file://'Gradle的'Project#file'不接受的格式。我現在所做的是使用'getResourceAsStream#getText'將文件內容轉儲到項目文件夾中。這有效,但並不是我的首選解決方案。 – Matthias

回答

0

我知道這個問題是舊的,但它仍然是開放的。也許這有助於任何人。

ZipTree功能應該有幫助(documentation)。它使您可以像訪問目錄結構一樣訪問存檔文件。