2017-09-14 80 views
5

我正在編寫一個gradle plugin,它希望從該插件應用於的項目的資源中讀取特定的屬性文件。爲了閱讀這些資源,我需要一個項目的類路徑。目前我將與:從Gradle org.gradle.api.Project獲取ClassLoader?

org.gradle.api.Project.getBuildscript().getClassLoader().getResourcesAsStream(...) 

但它總是返回null,即使此類資源存在該項目中。

+0

嘗試將資源添加到'buildSrc'類路徑 – msrd0

回答

0

Gradle buildscript被壓縮並放入本地緩存,因此該項目不在buildscript classloader的類路徑中。你需要的可能是org.gradle.api.Project. absoluteProjectPath()

例如讀取「src/main/resources/META-INF/MANIFEST.MF」:

try(Reader in = new FileReader(project.absoluteProjectPath("src/main/resources/META-INF/MANIFEST.MF"))) { 
    //... 
}