13

documentation of Maven Compiler plugin mentions the following:Czym jest domyślny proces odnajdywania procesorów adnotacji?

annotationProcessors:

Nazwy procesorów adnotacji do uruchomienia. Dotyczy tylko zestawu JDK 1.6+ Jeśli nie jest to , stosowany jest domyślny proces wykrywania procesorów adnotacji.

Co to jest domyślny proces wykrywania procesorów opisów tutaj? Czy istnieje inny sposób konfigurowania procesorów adnotacji niż ten tag konfiguracji?

Znalazłem że dokumentacja Getting Started with the Annotation Processing Tool (apt) wspomina domyślną procedurę wykrywania, ale działa z klas fabrycznych nie przetwórców i niestety wykorzystuje pakiety z JDK tools.jar i com.sun. Czy jest to domyślny proces wykrywania procesorów adnotacji?

Odpowiedz

15

Domyślnym sposobem udostępnienia procesora adnotacji w kompilatorze jest zarejestrowanie go w pliku pod numerem META-INF/services/javax.annotation.processing.Processor. Plik może zawierać wiele procesorów: każda w pełni kwalifikowana nazwa klasy we własnym wierszu, z znakiem nowej linii na końcu. Kompilator domyślnie użyje procesorów znalezionych w ten sposób, jeśli żaden nie zostanie określony.

+3

Mówiąc dokładniej, jest to [ServiceLoader] (http://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) dla 'javax.annotation.processing.Processor' – gk5885