执行gradlew fatJar报错:无法确定任务依赖,方法调用异常
问题解决
错误原因很明确:你代码里把Java文件对象的isDirectory()方法写成了IsDirectory()(首字母大写),Java方法名采用小驼峰命名规则,首字母必须小写,所以Gradle找不到这个方法,导致构建失败。
修正后的build.gradle相关配置代码如下:
jar { manifest { attributes 'Main-Class': 'gradle.Main' } from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } } task fatJar(type: Jar) { manifest { attributes 'Main-Class': 'gradle.Main' } archiveClassifier = "all" from { // 注意:configurations.compile 在Gradle新版本中已被弃用,建议改用compileClasspath或直接用runtimeClasspath configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } with jar }
额外提醒:configurations.compile在Gradle 7.x及以上版本已经被标记为废弃,推荐使用configurations.compileClasspath替代,或者直接只保留runtimeClasspath——因为runtimeClasspath已经包含了编译和运行时的所有依赖,这样可以避免后续版本的兼容性问题。
内容的提问来源于stack exchange,提问作者JustDreaming
相关产品推荐
相关产品推荐

