首页 > 解决方案 > Gradle:无法复制文件

问题描述

我尝试使用 gradle 复制文件。创建文件没有问题,扫描目录但文件副本不起作用

task toDo3{
    println("task toDo3 start in $projectDir" )

    new File("$projectDir/version.txt").text =
            """
                Version: $version
                Revision: 1.0.2
                Buildtime: ${new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date())}
                Application-name: foobarbaz app
            """
    println("task toDo3 end" )
}

task toDo4(type: Copy) {
    println("task toDo4 start" )
    from "src/main/version.txt"
    into "build"
    println("task toDo4 end" )
}

关于这个问题的任何想法?

感谢帮助

标签: filegradlecopy

解决方案


您需要了解Gradle 的构建阶段

当您可能希望它们在执行阶段触发时,您的所有 println 语句都处于配置阶段。你的 toDo3 在配置阶段做所有事情,在执行阶段什么也不做。

您可能希望将您的 println 等放在 adoFirst {...}doLast{...}闭包中

src/main. 更好的做法是在 $buildDir 下生成这些文件:

  1. 被“清理”任务删除
  2. 不会意外地致力于源代码控制
  3. 不要影响 Gradle 的最新检查/任务跳过

推荐阅读