【问题标题】:Get ClassLoader from gradle org.gradle.api.Project?从 gradle org.gradle.api.Project 获取 ClassLoader?
【发布时间】:2017-09-14 14:36:56
【问题描述】:

我正在写一个gradle plugin,希望从应用此插件的项目的资源中读取特定的属性文件。要阅读这些资源,我需要项目的类路径。目前我要去:

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

但即使该项目中存在此类资源,它也始终返回 null。

【问题讨论】:

  • 尝试将资源添加到buildSrc 类路径

标签: java gradle gradle-plugin


【解决方案1】:

Gradle buildscript 被编译并放入本地缓存,因此项目不在 buildscript 类加载器的类路径中。你需要的大概是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" ))) {
    //...
}

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 1970-01-01
    • 2015-06-08
    • 2014-12-25
    • 2018-06-29
    • 1970-01-01
    • 2014-04-22
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多