使用Gradle(Kotlin)生成Zip文件无输出,求排查问题
问题排查与解决方案
1. 核心问题:--dry-run 参数的影响
你执行的 ./gradlew assemble --dry-run 是模拟构建模式,仅会输出任务执行流程,不会实际执行任何文件生成操作。要真正生成zip文件,必须移除该参数,直接运行:
./gradlew assemble
2. 路径拼写错误(Mac系统常见坑)
Mac系统的桌面路径是 /Users/c11886/Desktop(注意Desktop首字母为大写),你代码中写的小写desktop会导致Gradle找不到目标目录,最终无法生成文件。
3. 修正后的任务配置
调整路径并优化Kotlin DSL写法(更符合规范):
tasks.register<Zip>("packageFiles") { from("bootrecoverybackend/src/main/java/mbr_backend/Closer.java") from("bootrecoverybackend/src/main/java/mbr_backend/SambaThread.java") archiveFileName.set("zippedFiles.zip") // 修正桌面路径的大写问题 destinationDirectory.set(file("/Users/c11886/Desktop")) } tasks.named("assemble") { dependsOn(tasks.named("packageFiles")) }
额外优化建议
- 避免硬编码绝对路径,可使用Gradle内置变量替代,提升跨环境兼容性:
destinationDirectory.set(file(System.getProperty("user.home") + "/Desktop")) - 可单独运行
./gradlew packageFiles测试该任务,无需每次执行完整的assemble流程。
内容的提问来源于stack exchange,提问作者ErminioB
相关产品推荐
相关产品推荐

