我在 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}"
}
}
没有龙目岛线,代码可以毫无问题地工作。
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 注释处理的变化,我正在更改龙目岛的声明方式。
在dependencyManagement
下的dependencies
块中,不应该有任何具体的依赖声明,例如。 compileOnly
、testCompileOnly
等只允许使用dependency
,因为您可以在其中定义所有具有正确版本的依赖项,以便以后在子项目中使用。