Code: Select all
[ERROR] .../src/main/java/com/guardxinc/ui/client/CompanyDataClient.java:[57,17] cannot find symbol
[ERROR] symbol: variable log
< /code>
Es geschieht für mehrere mit @Slf4j angekündigte Klassen. 3.13.0 < /li>
[*] Lombok: 1.18.38 < /li>
Erstellen mit: MVN Clean Install -pjar -dskiptests (auch versuchte kompilieren -x) < /li>
< /ul> Was ich sehe, was ich in -x -loges < /p>
Lomboks sehen kann.-processor lombok.launch.AnnotationProcessorHider$AnnotationProcessor
-processorpath .../org/projectlombok/lombok/1.18.38/lombok-1.18.38.jar
< /code>
und Maven -Drucke: < /p>
(f) annotationProcessorPaths = [org.projectlombok:lombok:1.18.38.jar]
(f) annotationProcessors = [lombok.launch.AnnotationProcessorHider$AnnotationProcessor]
bestätigte ein winziges frisches Projekt mit denselben Lombok/JDK/Maven-Versionen kompiliert einwandfrei-das Problem ist nur in diesem größeren Projekt.package com.example;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class CompanyDataClient {
public void call() {
log.info("hello"); //
minimales pom.xml (nur Teile, die für Lombok & Compilation relevant sind) < /p>
4.0.0
com.example
lombok-slf4j-repro
1.0-SNAPSHOT
21
UTF-8
1.18.38
2.0.17
org.projectlombok
lombok
${lombok.version}
provided
org.slf4j
slf4j-api
${slf4j.version}
org.apache.maven.plugins
maven-compiler-plugin
3.13.0
true
${maven.compiler.release}
org.projectlombok
lombok
${lombok.version}
-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
< /code>
Frage < /strong>
Angesichts der oben genannten, was könnte Maven sonst noch dazu bringen, die Originalquellen ohne Lombok zu kompilieren, obwohl der Prozessor eindeutig auf dem Pfad ist? Gibt es bekannte Fallstricke, bei denen ein anderes Plugin/Profil/Quell -Root stört, sodass Lombok für einige Dateien ausgeführt wird (oder konfiguriert erscheint), aber @SLF4J -Felder fehlen noch? Alle Zeiger darüber, worauf man in -x -Ausgang suchen soll (z. B. unerwartete zusätzliche Quellwurzeln, Profile src/main/java usw.) wären sehr geschätzt.