Maven + Lombok @SLF4J auf JDK 21: „Symbol finden: Variable Protokoll“, obwohl die Annotationsverarbeitung konfiguriert iJava

Java-Forum
Anonymous
 Maven + Lombok @SLF4J auf JDK 21: „Symbol finden: Variable Protokoll“, obwohl die Annotationsverarbeitung konfiguriert i

Post by Anonymous »

Ich baue eine Spring -Boot -App mit Maven aus der CLI (keine Ideenbildung). Viele Klassen verwenden Lomboks @SLF4J, aber der Build schlägt so fehl: < /p>

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]
Das Protokoll wird noch nicht generiert. Verhärtung.
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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post