Hallo,
Ich verwende Lombok in meinen Entitäten und möchte MetaModelEntities erstellen. Also habe ich den lombok Annotation Processor verwendet. Wenn ich das Projekt kompiliere, gibt es unten Fehler:
Hier sind meine Werkzeugversionen:
Maven 3.2.5
Java 1.8
Lombok 1.16.6
So benutze ich Lombok:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>${project.java.version}</source>
<target>${project.java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<!--<compilerArgument>-proc:none</compilerArgument>-->
<annotationProcessors>
<annotationProcessor>lombok.core.AnnotationProcessor</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<!-- source output directory -->
<outputDirectory>${generated-java-source}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9.1</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${generated-java-source}</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Wenn ich lombok 1.14.8 benutze, sehe ich kein Problem. Wenn ich mir die JAR-Datei 1.16.6 ansehe. lombok.core.AnnotationProcessor ist da drüben, aber alle Klassenerweiterungen sind .lombok. Ich denke, das verursacht das Problem.
Wie kann ich das lösen?
Wir haben die Klassenladeinfrastruktur in unserem Jar zwischen diesen Versionen geändert.
Die richtige Annotationsprozessorklasse wurde geändert in:
lombok.launch.AnnotationProcessorHider $ AnnotationProcessor
Versuchen Sie, diese Zeichenfolge an der folgenden Stelle in das XML einzufügen: plugins / plugin [maven-compiler-plugin] / configuration / annotationProcessors / annotationProcessor.
Wenn dies nicht funktioniert, öffnen Sie das Problem erneut.
Wenn ich die AnnotationProcessor-Klasse wie folgt ändere:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>${project.java.version}</source>
<target>${project.java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<!--<compilerArgument>-proc:none</compilerArgument>-->
<annotationProcessors>
<annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
Das Problem wurde gelöst. Ich danke dir sehr.
Ich habe versehentlich auch die gleiche Lösung für mein Problem gefunden.
Ich werde den Fehler einfügen, der zukünftige Googler zu richtigen Informationen führen könnte.
Maven Lombok kann keine Symbolmethode finden
wenn jemand noch nach der richtigen Antwort sucht, hier ist es;)
Link: https://github.com/jhipster/generator-jhipster/issues/5942#issuecomment -335002220
Wie füge ich das in ein sbt-Projekt ein?
Ich erhalte immer noch Fehler, weiß nicht, was falsch läuft. Bitte helfen Sie
Bitte korrigieren Sie Ihre POM-Datei. Gemäß https://projectlombok.org/setup/maven
Das richtige Bit der Maven-Compiler-Plugin-Konfiguration sieht folgendermaßen aus:
Am Dienstag, 25. August 2020, 12:25 Uhr schrieb Shreyar20 [email protected] :
Ich erhalte immer noch Fehler, weiß nicht, was falsch läuft. Bitte helfen Sie
- -
Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/rzwitserloot/lombok/issues/905#issuecomment-679941073 ,
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AABIERIZCS5KACXZ4Z3ZUMTSCOGSRANCNFSM4BOM65VA
.
Hilfreichster Kommentar
Wenn ich die AnnotationProcessor-Klasse wie folgt ändere:
Das Problem wurde gelöst. Ich danke dir sehr.