将项目资源添加到Gradle Custom插件

时间:2019-07-05 20:38:50

标签: gradle groovy build.gradle gradle-plugin gradle-custom-plugin

我正在构建一个自定义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
    }
}

我必须要做的是,将项目资源添加到build插件的类路径中,以使其正常工作吗?

1 个答案:

答案 0 :(得分:0)

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

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

尽管我不确定这是否是最好的方法。

或者: 您可以访问主要sourceSet中的“ 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")