【问题标题】:Gradle Incremental Build not generate folder structure in target pathGradle Incremental Build不在目标路径中生成文件夹结构
【发布时间】:2017-02-09 11:27:28
【问题描述】:

Gradle Incremental Build 任务检测项目中更改的文件并编译并将这些文件仅放入目标目录。

问题是当它把这些更改文件放入目标目录但它没有打包时。

例如:假设我有包'org/example/test.java',当我使用 gradle 运行任务并且它检测到 test.java 文件更改然后它被编译并放入目标目录中,如: 'target/project/WEB-INF/classes/test.class' 不做任何包。 但我需要'target/project/WEB-INF/classes/org/example/test.class'

任何帮助表示赞赏。我把我的 gradle 任务代码放在下面:

task incrementalReverse(type: IncrementalReverseTask) {
    inputDir = file('src/java')
    outputDir = file("${tempBuildPath}/WEB-INF/classes")
}


class IncrementalReverseTask extends DefaultTask {

@InputDirectory
def File inputDir

@OutputDirectory
def File outputDir

@TaskAction
void execute(IncrementalTaskInputs inputs) {
    println inputs.incremental ? "CHANGED inputs considered out of date"
                               : "ALL inputs considered out of date"
    if (!inputs.incremental)
        project.delete(outputDir.listFiles())

    inputs.outOfDate { change ->
        println "out of date: ${change.file.name}"
        def targetFile = new File(outputDir, change.file.name)
        targetFile.text = change.file.text.reverse()
    }

    inputs.removed { change ->
        println "removed: ${change.file.name}"
        def targetFile = new File(outputDir, change.file.name)
        targetFile.delete()
    }
}
} 

【问题讨论】:

    标签: java gradle build incremental-build


    【解决方案1】:
    def targetFile = new File(outputDir, change.file.name)
    targetFile.parentFile.mkdirs()
    

    【讨论】:

    • 精彩的反馈
    猜你喜欢
    • 2018-07-06
    • 2018-11-20
    • 2020-07-20
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    相关资源
    最近更新 更多