Lombok @getter 在 src/test/java 包中不工作
Lombok @getter not working in src/test/java package
我已将我的 jdk 从 10 升级到 11,并更新了所有依赖项以使用最新版本。使用 gradle 包装器编译时会抛出以下错误
symbol: method getId()
TestLombok.java:55: error: cannot find symbol
object.setId(Long.valueOf(getRandomString(5, onlyNumbers)));
- Gradle 包装分发版本 5.4.1
- JDK 11.0.2
- Mac Mac海因
- 龙目岛 1.18.8
我试过各种版本的lombok,但都无法解决问题
- 1.18.8
- 1.18.4
之前我使用的是 lombok 1.18.2 和 annotationprocessor 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")
}
您没有 post 您的 build.gradle
但我猜您将 Lombok 依赖项声明为 compileOnly
,它仅适用于主代码。同时声明为 testCompileOnly
.
我刚刚重现了你遇到的同样问题,我的 gradle 版本是
Gradle Version : 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 了解更多信息
对于测试源集中的Lombok注解,需要将Lombok添加到两个依赖配置中:
testCompileOnly '...'
testAnnotationProcessor '...'
与 compileOnly
和 annotationProcessor
相同,第一个使注释对代码可用,第二个在编译期间激活注释处理。
终于可以通过将 gradle 版本升级到 5.6 和 testCompileOnly '...' 来解决这个问题
testAnnotationProcessor '...'
通过在 build.gradle 文件中添加以上两件事
我已将我的 jdk 从 10 升级到 11,并更新了所有依赖项以使用最新版本。使用 gradle 包装器编译时会抛出以下错误
symbol: method getId()
TestLombok.java:55: error: cannot find symbol
object.setId(Long.valueOf(getRandomString(5, onlyNumbers)));
- Gradle 包装分发版本 5.4.1
- JDK 11.0.2
- Mac Mac海因
- 龙目岛 1.18.8
我试过各种版本的lombok,但都无法解决问题
- 1.18.8
- 1.18.4
之前我使用的是 lombok 1.18.2 和 annotationprocessor 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")
}
您没有 post 您的 build.gradle
但我猜您将 Lombok 依赖项声明为 compileOnly
,它仅适用于主代码。同时声明为 testCompileOnly
.
我刚刚重现了你遇到的同样问题,我的 gradle 版本是
Gradle Version : 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 了解更多信息
对于测试源集中的Lombok注解,需要将Lombok添加到两个依赖配置中:
testCompileOnly '...'
testAnnotationProcessor '...'
与 compileOnly
和 annotationProcessor
相同,第一个使注释对代码可用,第二个在编译期间激活注释处理。
终于可以通过将 gradle 版本升级到 5.6 和 testCompileOnly '...' 来解决这个问题 testAnnotationProcessor '...'
通过在 build.gradle 文件中添加以上两件事