【问题标题】:Dynamic gradle copy task not executing task body动态 gradle 复制任务未执行任务主体
【发布时间】:2016-09-16 02:43:24
【问题描述】:

下面的脚本生成一个动态复制任务(cbat)。 但是执行

gradle cbat

只执行

复制文件

方法定义(仅 println 语句),但不要将文件从源目录复制到目标目录。

请在下面找到简化的 build.gradle:-

group 'learn'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.5

task fileCopy{
    group 'Config'
    description 'Copy task'
    ext.scriptSrc = 'C:\\Users\\devuser\\Desktop\\jars\\src\\binwin'
    ext.scriptDest = 'C:\\Users\\devuser\\Desktop\\jars\\dest'
    ext.includeEmptyDirs = false

    //This adds a cbat gradle task
    copyFiles("cbat", scriptSrc, scriptDest, "*.bat", includeEmptyDirs)
}


def copyFiles(String taskName, String source, String dest, String pattern, boolean includeEmptyDirs = false){
    println "$taskName"
    println "$source"
    println "$dest"
    println "$pattern"
    println "$includeEmptyDirs"

    task "$taskName" (type:org.gradle.api.tasks.Copy) << {
        includeEmptyDirs = includeEmptyDirs
        FileCollection collection = fileTree(source).include(pattern)
        from( collection )
        into dest
    }
}

我已经验证了源目录和目标目录存在。

【问题讨论】:

    标签: gradle build copy task


    【解决方案1】:

    你必须调用 'execute()' 来运行任务,像这样:

    task copyFiles<<{
        task ([type:Copy], 'name'){
            println this.name
        }.execute()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 2021-08-21
      • 2014-06-26
      • 1970-01-01
      • 2022-07-25
      • 2021-10-11
      • 1970-01-01
      相关资源
      最近更新 更多