【问题标题】:Overriding normal SourceSet behaviour, Gradle覆盖正常的 SourceSet 行为,Gradle
【发布时间】:2017-02-20 11:33:48
【问题描述】:

Gradle 文档说默认的 SourceSet,mainis compiled and assembled into a Jar。我有一组要使用自定义插件编译的非 Java 模板文件。 SourceSet 概念似乎是保持所有这些模板文件井井有条的好方法,但我不希望 Gradle 尝试将它们编译为 Java 文件。有没有办法覆盖默认的 SourceSet 行为,以便我可以准确地告诉 Gradle 我想要对 SourceSet 中的文件做什么?如果没有,我可以使用另一个 Gradle 构造将非 Java 源文件组合成逻辑单元吗?

【问题讨论】:

  • 也许您应该添加源的文件夹结构和源的 gradle 定义。
  • 您的问题解决了吗?

标签: gradle


【解决方案1】:

这是一个如何组织非 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
}

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

最后,如果需要,只需将它们添加到您的 jar 中。

【讨论】:

    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    相关资源
    最近更新 更多