我有一个在Windows 10上成功运行的多项目Gradle构建脚本。它读取并更新远离项目托管目录的Version.properties文件。 使用Gradle/groovy完成所有文件操作。在版本文件被读取,增加和重写之后,它被复制到build/classes目录,在那里它将被随后的jar和shadowjar任务拾取。Gradle clean build - 在清洁完成之前开始构建
gradle build shadowjar ... etc.
但是,如果我调用建立文件之前清洁任务是阅读和适当增加,但该文件的副本静静地失败:如果我的Gradle调用如下
一切都像宣传的那样。
使用的命令是:
gradle clean build shadowjar
我怀疑是gradle这个不等待清洁任务开始之前构建的任务完成。文件被读取并增加,但同时,多项目清理活动尚未完成。我尝试过在依赖项块,doFirst {}和doLast {}上进行尝试,并在构建过程中进一步推送文件副本。我的主要要求是在执行jar或shadowjar任务之前,先有Version.properties文件。我怀疑试图写入gradle的构建/目录,因为在gradle执行其活动时,可能无法将任何内容放入构建目录中。有什么方法可以确保Version.properties文件(或任何生成的文件)被复制?还是有另一个位置,我可以使用它不会在清理时被gradle吹走,但仍然可以在build中拾取:jar/build:shadowjar?
你使用并行执行('--parallel' or'org.gradle.parallel = true')吗? 你正在使用哪个版本的Gradle? – bigguy
gradle -version用Groovy 2.4.7返回Gradle 3.3。我没有启用--parallel我的build.gradle脚本中的任何地方。 – blyons