我已将我的jdk从10升级到11,并且所有依赖项都更新为使用最新版本。使用gradle包装器进行编译时,会引发以下错误
symbol: method getId()
TestLombok.java:55: error: cannot find symbol
object.setId(Long.valueOf(getRandomString(5, onlyNumbers)));
我尝试过各种版本的lombok,但无法解决问题
以前我使用的是lombok 1.18.2和注解处理器1.18.2
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class User {
@JsonProperty("id")
public Long id;
}
我希望问题可以在gradle5.x.x版本中解决,但问题仍然存在。让我知道使用gradle包装器版本是否有任何问题。以下是我的build.gradle文件
buildscript {
ext {
springBootVersion = '2.1.1.RELEASE'
}
repositories {
mavenCentral()
jcenter()
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://jitpack.io" }
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
}
}
apply plugin: "java"
apply plugin: "eclipse"
apply plugin: "org.springframework.boot"
group = "com.demo"
version = "0.0.1-SNAPSHOT"
sourceCompatibility = 11
targetCompatibility = 11
repositories {
maven { url "https://plugins.gradle.org/m2/" }
maven { url "http://repo.maven.apache.org/maven2" }
maven { url "https://repo.spring.io/milestone" }
maven { url "https://maven.google.com" }
jcenter()
mavenCentral()
}
dependencies {
compile group: 'javax.inject', name: 'javax.inject', version: '1'
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '2.1.4.RELEASE'
compile("org.springframework.boot:spring-boot-starter-web")
compileOnly("org.projectlombok:lombok:1.18.8")
compile("org.mockito:mockito-core:" + mockitoVersion)
test.useJUnitPlatform()
annotationProcessor ('org.projectlombok:lombok:1.18.8')
testCompileOnly("org.projectlombok:lombok:1.18.8")
}
答案 0 :(得分:2)
您没有发布build.gradle
,但我想您已将Lombok依赖声明为compileOnly
,这仅适用于主代码。还要将其声明为testCompileOnly
。
答案 1 :(得分:1)
我只是复制了您遇到的相同问题,我的gradle版本是
版本版本:5.4.1
要解决此问题,请参考Lombok文档(https://projectlombok.org/setup/gradle),如下所示更改依赖关系。
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
您可以查看此https://github.com/rzwitserloot/lombok/issues/1945了解更多信息
答案 2 :(得分:1)
最终可以通过将gradle版本升级到5.6并还测试compileOnly'...'来解决此问题。 testAnnotationProcessor'...'
通过在build.gradle文件中添加以上两件事
答案 3 :(得分:0)
正如@Abhijit Sarkar所说的对我有用,因此只需在testCompileOnly
中加上build.gradle
。如果这不起作用,则可能必须在设置中再次启用注释处理。
答案 4 :(得分:0)
对于测试源集中的Lombok批注,您需要将Lombok添加到两个依赖项配置中:
testCompileOnly '...'
testAnnotationProcessor '...'
以与compileOnly
和annotationProcessor
相同的方式,第一个使注释可用于代码,而第二个则在编译期间激活注释处理。