覆盖正常的SourceSet行为,Gradle

时间:2017-02-19 22:11:24

标签: gradle

Gradle文档说默认的SourceSet,<div id="b-placeholder"> </div> <script> $(function(){ $("#b-placeholder").load("b.html"); }); </script> is compiled and assembled into a Jar。我有一组非Java模板文件,我想使用自定义插件进行编译。 SourceSet概念似乎是保持所有这些模板文件有条理的好方法,但我不希望Gradle尝试将它们编译为Java文件。有没有办法覆盖默认的SourceSet行为,以便我可以告诉Gradle我想要对SourceSet中的文件做什么?如果没有,是否有另一个Gradle构造我可以用来将非Java源文件组合成逻辑单元吗?

1 个答案:

答案 0 :(得分:3)

以下是如何组织非Java文件以及如何处理它们的示例:

apply plugin: "java"

sourceSets {
    template {
        resources {
            srcDir 'src/template'
            include '**/*'
        }
    }
}

processTemplateResources {
    doLast {
        println sourceSets.template.output.classesDir
        FileTree tree = fileTree(dir: sourceSets.template.output.resourcesDir)
        tree.forEach {
            println it
        }
    }
}

jar {
    from sourceSets.main.output
    from sourceSets.template.output
}

我已经定义了一个新的仅限资源的源集。这会自动添加将资源复制到输出目录的进程资源任务。然后你可以在那里处理它们。

最后,如果需要,只需将它们添加到你的罐子里。