Ich bin neu in Annotation Verarbeitung und ich versuche, es mit Maven zu automatisieren. Ich habe dies in meinem pom.xml setzen:Maven Annotation Processing Processor nicht gefunden
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<annotationProcessors>
<annotationProcessor>
co.aurasphere.revolver.annotation.processor.InjectAnnotationProcessor</annotationProcessor>
<annotationProcessor>
co.aurasphere.revolver.annotation.processor.RevolverContextAnnotationProcessor</annotationProcessor>
</annotationProcessors>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
Das Problem ist, dass, wenn ich versuche, das Projekt, das ich ein CompilationFailureException bekommen zu bauen, weil Maven können die Prozessoren finden.
Ich habe andere Fragen wie diese gefunden, gelöst, indem Sie die Abhängigkeit außerhalb des Plugins setzen. Ich habe es versucht, aber nichts hat sich für mich geändert.
Fehle ich etwas?
Vielen Dank.
EDIT
Hier ist meine Abhängigkeit von einem anderen Projekt, das sowohl den Prozessor und die Anmerkungen enthält:
<dependencies>
<dependency>
<groupId>co.aurasphere</groupId>
<artifactId>revolver-annotation-processor</artifactId>
<version>0.0.3-SNAPSHOT</version>
</dependency>
</dependencies>
EDIT 2:
Nach einer weiteren Untersuchung habe ich beschlossen, dekompiliere den Prozessor JAR (mit Maven gebaut) und es passiert, dass ... meine Klassen nicht da sind. Aus irgendwelchen Gründen kompiliert Maven meine Klassen nicht in die JAR und deshalb werden die Klassen nicht gefunden. Ich habe versucht, herauszufinden, was an diesem Build falsch ist (das ist mir noch nie passiert und ich habe Maven eine Weile benutzt ...).
Zunächst einmal ist die Verpackung auf diesem Projekt Glas. Die Klassen befinden sich alle unter src/main/java. Ich habe in meiner pom.xml eingecheckt, dass der Klassenpfad und der Quellpfad identisch sind.
Hier ist der Prozessor pom:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>co.aurasphere</groupId>
<artifactId>revolver-annotation-processor</artifactId>
<version>0.0.3-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
EDIT 3
Here ist der Ausgang eines Maven sauber auf dem Prozessor-Projekt installieren. Leider ist die Ausgabe zu lang und ich musste eine externe Verbindung veröffentlichen, auch wenn ich weiß, dass es nicht gut ist.
EDIT 4
Hier sind einige Screenshots meiner Abhängigkeitshierarchie: und .
Da das Projekt ursprünglich als einfaches Eclipse-Java-Projekt erstellt und dann in ein Maven-Projekt umgewandelt wurde, versuchte ich ein neues Maven-Projekt zu erstellen und alles auf das neue zu verschieben, in der Hoffnung, dass das Problem das Eclipse-Plugin war etwas kaputt gemacht, aber der Fehler war immer noch da.
Bitte schreiben Sie, wie Sie die Abhängigkeiten zu den 'co.auraspere.revolver ...' Paketen definiert haben. Sie sind nicht ** in ** dem Projekt, das Sie zu kompilieren versuchen, oder? – ppeterka
Beachten Sie, dass Sie die Annotationsprozessoren erstellen müssen, * bevor * Sie das Projekt erstellen, das sie verwendet. – chrylis
Die Anmerkungen und die Prozessoren werden auf einem anderen Projekt wie im OP importiert (ich habe es bearbeitet). Ich habe diesen Prozess vorher gebaut und ich sehe den Import unter Maven Dependencies in Eclipse als Projekt (kein Jar, IDK warum ...). Das Prozessor-Projekt ist definiert mit jar –
Aurasphere