Gradle compileOnly无法使Lombok在测试中可用

46qrfjad  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(296)

我的build.gradle文件通过以下方式将Lombok添加为依赖项:

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'

这对于所有“正常”的应用程序代码来说都很好--但是在测试中,如果我尝试使用任何Lombok注解,我会得到它不可用的错误。
为什么呢?我认为测试编译类路径应该从常规类路径扩展-因为它需要对所有常规代码进行广泛的测试?
不断变化

compileOnly 'org.projectlombok:lombok'

implementation 'org.projectlombok:lombok'

使错误消失-但我想了解为什么测试类路径不扩展/继承常规类路径?

3phpmpom

3phpmpom1#

答案是:compileOnly在测试时不起作用,这就是为什么你需要在测试时添加依赖关系。
所以这里链接到文档lombok https://projectlombok.org/setup/gradle
这是文本的副本:不带插件的Gradle如果您不想使用插件,gradle具有内置的compileOnly作用域,可用于指示gradle仅在编译期间添加lombok。您的build.gradle将如下所示:

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.24'
    annotationProcessor 'org.projectlombok:lombok:1.18.24'
    
    testCompileOnly 'org.projectlombok:lombok:1.18.24'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.24'
}

这是gradle文档的链接。测试是如何形成的。https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_configurations_graph

相关问题