You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle WriteProperties任务未随构建生成文件,仅直接运行生效求助

Gradle writeProperties任务未执行问题排查与解决

我最近在非Android的Java项目里遇到了一个关于Gradle writeProperties任务的诡异问题,折腾了好一阵子才搞定,分享出来给有同样困扰的开发者参考:

问题现象

  • 执行./gradlew assembleDist或./gradlew foo:run构建项目时,能看到writeProperties任务中println("task ran")的输出,但指定路径下的foo.properties文件始终没有生成
  • 直接执行./gradlew foo:writeProperties时,文件却能正常创建,并且正确填充了变量
  • 尝试用doFirst{}和doLast{}包裹任务代码时,出现错误:Cause: path may not be null or empty string. path='null'

问题原因

后来才搞清楚关键:println是在Gradle的配置阶段就输出了,但writeProperties任务的实际执行逻辑根本没被触发——简单说就是任务只完成了配置步骤,却没被纳入当前的构建执行流程中。

解决方法

我通过将writeProperties任务绑定到compileJava任务的末尾执行,解决了这个问题,只需要在构建脚本中添加:

compileJava.finalizedBy(writeProperties)

这样在执行assembleDist或run这类包含compileJava的构建任务时,writeProperties就会被自动触发执行,foo.properties文件也能正常生成了。

内容的提问来源于stack exchange,提问作者Algebro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:52:29