13

Die documentation of Maven Compiler plugin mentions the following:Wie lautet der standardmäßige Verarbeitungsprozess für Annotationsprozessoren?

annotationProcessors:

Namen der Annotation-Prozessoren laufen zu lassen. Gilt nur für JDK 1.6+ Wenn nicht festgelegt, gilt der Standardprozeß für Annotationsprozessoren.

Was ist die Standard Annotation Prozessoren Discovery-Prozess hier? Gibt es eine andere Möglichkeit, Annotationsprozessoren als dieses Konfigurationstag einzurichten?

habe ich, dass die Verfahren Getting Started with the Annotation Processing Tool (apt) Dokumentation erwähnt ein Standard Entdeckung gefunden, aber es funktioniert mit Factory-Klassen nicht Prozessoren und leider verwendet es die tools.jar und com.sun Pakete aus dem JDK. Ist dies der Standardprozess für Annotationsprozessoren?

Antwort

15

Die Standardmethode, einen Annotationsprozessor für den Compiler verfügbar zu machen, besteht darin, ihn in einer Datei in META-INF/services/javax.annotation.processing.Processor zu registrieren. Die Datei kann eine Reihe von Prozessoren enthalten: jeweils der vollständig qualifizierte Klassenname in einer eigenen Zeile mit einem Zeilenende am Ende. Der Compiler verwendet standardmäßig Prozessoren, die auf diese Weise gefunden werden, wenn keine angegeben sind.

+3

Um genau zu sein, es ist nur ein [ServiceLoader] (http://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) für 'javax.annotation.processing.Processor' – gk5885