gradle - Gradle 5.0:java.lang.String 无法转换为类 groovy.lang.Closure(lombok 问题)
问题描述
我在 Gradle 5.0 升级(从 4.10.2)期间遇到错误,并将代码隔离到以下块:
dependencyManagement {
dependencies {
compileOnly "org.projectlombok:lombok:1.18.2"
testCompileOnly "org.projectlombok:lombok:1.18.2"
annotationProcessor "org.projectlombok:lombok:1.18.2"
testAnnotationProcessor "org.projectlombok:lombok:1.18.2"
dependency "com.google.guava:guava:$guavaVersion"
dependency "mysql:mysql-connector-java:$mysqlversion"
dependency "com.google.inject:guice:${guiceVersion}"
dependency "org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.1.RELEASE"
}
imports {
mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
mavenBom "com.amazonaws:aws-java-sdk-bom:${awsVersion}"
}
}
没有 lombok 行,代码可以正常工作。
dependencyManagement {
dependencies {
dependency "com.google.guava:guava:$guavaVersion"
dependency "mysql:mysql-connector-java:$mysqlversion"
dependency "com.google.inject:guice:${guiceVersion}"
dependency "org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.1.RELEASE"
}
imports {
mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
mavenBom "com.amazonaws:aws-java-sdk-bom:${awsVersion}"
}
}
错误是class java.lang.String cannot be cast to class groovy.lang.Closure (java.lang.String is in module java.base of loader 'bootstrap'; groovy.lang.Closure is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @675d3402)
由于 Gradle 5 注释处理的变化,我正在改变声明 lombok 的方式。
解决方案
在下面的dependencies
块dependencyManagement
中不应该有任何具体的依赖声明,例如。compileOnly
等testCompileOnly
。仅dependency
允许在其中定义所有具有正确版本的依赖项以供以后在子项目中使用。
推荐阅读
- sql - 将数据从 Oracle 数据库 11G 传输到 MongoDB
- r - R - 使用数据框中的最后一个已知和速率预测值
- java - 无法在 Java 11 中独立构建 Selenium
- php - 执行一个带有值的 PHP 文件
- php - Authorize.net web hook Webhook 通知中发送的 JSON 无效
- python - 获取网站的 HTML 时,我似乎无法获取
标签,只有
标记自己。我怎样才能解决这个问题?
- boost - Homebrew 软件包之间缺少链接
- sql - SQL按一个标准排列N条记录,按另一个标准排列N条记录并重复
- python - PyQt5:如何连接()和发射()
- javascript - Disable a field in angular reactive form