Wie verwenden von benutzerdefinierten annotation-Prozessor mit Maven 2?

In unserer enterprise-Anwendung suchen wir eine dynamische Methode zum erfassen von Daten aus Java-Klassen. Wir erstellt eine benutzerdefinierte annotation-interface (@interface) mit einem name Eigenschaft. Wir möchten, sammeln Sie den Wert dieser Eigenschaft von allen annotierten Klassen.

Konnte ich erstellen Sie eine AnnotationProcessorFactory und ein AnnotationProcessor für die benutzerdefinierte annotation. Da sind wir mit Maven 2, habe ich noch die folgenden plugins in der pom.xml von der hauptassembly des Projekts.

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>apt-maven-plugin</artifactId>
      <version>1.0-alpha-5</version>
      <configuration>
        <factory>our.company.api.component.lister.ComponentAnnotationProcessFactory</factory>
      </configuration>
    </plugin>

Diese befindet sich in der Haupt-Projekt, das mehrere sub-Projekte. Die Fabrik-und custom-Prozessor sind in einem dieser Teilprojekte. Die individuelle Anmerkungen sind verstreut über alle sub-Projekte, das ist der Grund, warum ich das plugin in der pom.xml von der hauptassembly des Projekts.

Das problem ist, wenn ich Problem der mvn apt:process Befehl bekam ich eine Warnung über die Anmerkungen ohne Prozessoren und unsere benutzerdefinierten annotation ist unter Ihnen. Ich nehme an, dies bedeutet, dass das plugin nicht finden kann die factory-Klasse.

Was soll ich tun, damit das plugin finden konnte, die Fabrik und die Prozessor-Datei?

EDIT:

Die Projekt-Hierarchie ist sehr einfach:

main_project
|-sub_project1
|...
|-sub_projectn

Das plugin ist in der pom.xml des main_project. Einfach davon ausgehen, dass die Fabrik und der Prozessor in sub_project1 und die individuelle Anmerkungen sind in sub_project2, sub_project3, ..., sub_projectn

  • Was macht Ihr Projekt-Hierarchie Aussehen?
InformationsquelleAutor nosferat | 2012-07-26
Schreibe einen Kommentar