2017-09-14 109 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"))) { 
    //... 
}