且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在单个 build.gradle 文件中多次调用相同的任务

更新时间:2023-01-11 16:29:13

此代码似乎可以在 build.gradle 中使用 tasks.register() - 例如执行多个源代码生成步骤 - 在我的情况下,我需要在两个不同的步骤中加载不同的文件对(XML 架构和生成选项):

This code seems to work in build.gradle by using tasks.register() - e.g. to perform multiple source code generating steps - in my case I needed to load different pairs of files (XML schema and generation options) in two different steps:

plugins {
    id 'java'
    id "com.plugin" version "1.0"
}


sourceSets.main.java.srcDirs += file("${buildDir}/genSrc")
sourceSets.test.java.srcDirs += file("${buildDir}/testGenSrc")

tasks.compileJava {
    dependsOn tasks.named("genMessage")
}

genMessage {
    codesFile = "${projectDir}/src/main/resources/file.xml"
}

def testGenModel1 = tasks.register("testGenModel1", com.plugin.TestGenModelTask.class) {
    schema = "${projectDir}/src/test/resources/file.xsd"
    options = "${projectDir}/src/test/resources/file.xml"
}

def testGenModel2 = tasks.register("testGenModel2", com.plugin.TestGenModelTask.class) {
    schema = "${projectDir}/src/test/resources/file2.xsd"
    options = "${projectDir}/src/test/resources/file2.xml"
}

tasks.compileTestJava {
    dependsOn tasks.named("testGenModel1"), tasks.named("testGenModel2")
}