0

我正在构建一个自定义 gradle 插件,该插件在应用于项目时将使用项目资源文件夹中的配置文件来填充一些模板并生成一些其他配置文件。

但是当我将插件中的文件作为类路径资源读取时,它会因为找不到文件而失败。

public class VideoBuildPlugin implements Plugin<Project> {

    @Override
    public void apply(Project target) {
        String file = "app/config/dev.yml"; // These files reside in the resources of the project folder
        VideoBuildPlugin.class.getClassLoader().getResourceAsStream(file); // This line fails
    }
}

我是否必须将项目资源添加到构建插件的类路径才能使其正常工作?

4

1 回答 1

0

您可以将文件显式添加到 buildscript 类路径(在您应用自定义插件的应用程序中):

buildscript {
    dependencies {
        classpath files("src/main/resources")
    }
}

虽然我不确定这是否是最好的方法。

或者:您可以访问主源集中的“资源”文件夹

        def javaPlugin = project.convention.getPlugin(JavaPluginConvention.class)

        def mainSourceSet = javaPlugin.sourceSets.getByName("main")
        def resources = mainSourceSet.getResources()

        resources.srcDirs[0].resolve("app/config/dev.yml")
于 2019-07-05T21:07:45.630 回答