2013-02-14 4 views
6

Derzeit erzeugen ich Dateien mit einer Anmerkung Prozessor in Eclipse für ein Projekt vonWie auf Annotations-Prozessor in Eclipse ausführen speichert

Right click on project > Run As > Maven Clean 
Right click on project > Run As > Maven install 

Dies ist sehr zeitaufwendig. Wie richte ich Eclipse so ein, dass der Annotationsprozessor beim Speichern ausgeführt wird?

Ich habe die Feature "Build automatisch", aber es scheint die Annotation Prozessoren zu ignorieren. Übrigens benutze ich das m2e apt Plugin mit "JDT APT automatisch konfigurieren aktiviert".

+2

Überprüfen Sie Ihre Projekteinstellungen unter 'Java Compiler> Annotation Processing' und stellen Sie sicher, dass dort alles aktiviert ist. – gk5885

+0

Hallo! Hast du dein Problem gelöst? – LppEdd

+0

Ja ich wechselte zu Netbeans – AndiDev

Antwort

1

Ich glaube, Sie einen Trigger benötigen Maven Ziel zu laufen, also:

Sie eine gültige Maven Lifecycle-Aktion

Beispiel für ein Glas hinzufügen, die automatisch lokal durch maven install plugin eingesetzt wird:

<build> 
    <!-- ... --> 

    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 

          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-jar-plugin</artifactId> 
            <versionRange>[2.0,)</versionRange> 
            <goals> 
             <goal>jar</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <execute> 
             <runOnConfiguration>true</runOnConfiguration> 
             <runOnIncremental>true</runOnIncremental> 
            </execute> 
           </action> 
          </pluginExecution> 

          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-install-plugin</artifactId> 
            <versionRange>[2.5.0,)</versionRange> 
            <goals> 
             <goal>install</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <execute> 
             <runOnConfiguration>true</runOnConfiguration> 
             <runOnIncremental>true</runOnIncremental> 
            </execute> 
           </action> 
          </pluginExecution> 

         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

Hinweis: bezieht sich auf Maven Project Builder is invoked every time I change a source file (GWT) und als Warnung: installieren Sie enthält in der Regel Tests, wenn Sie inkl haben Sie haben sie in Ihrem normalen Maven-Build-Zyklus gespeichert.

1

Ich habe Annotationsbearbeitung in Eclipse für einige meiner Projekte; für mich arbeitet es auf speichern, und ich muss nicht mvn install (und es funktioniert anders als Maven, wie Eclipse seinen eigenen Compiler ausführt).

Ich verwende auch m2e-apt Plugin dafür. Wie oben erwähnt, führt Eclipse seinen eigenen Compiler aus; Das bedeutet, dass die Ausgabe etwas anders sein kann als die von Maven (wenn Sie mit der rechten Maustaste auf Projekt> Ausführen als> Maven Clean/Install klicken, rufen Sie Maven auf, nicht Eclipse). Ich erwähne das, weil es durchaus möglich ist, dass Ihre Prozessoren ein Problem haben und in Maven arbeiten, aber nicht in Eclipse (obwohl sie meistens die gleiche Ausgabe produzieren; ich habe einige Unterschiede gesehen, aber sehr klein). Ich würde das Fehlerprotokoll von Eclipse im Auge behalten, wenn ich Sie wäre (weil hier Fehler in der Annotationsverarbeitung geschrieben sind).

So, hier ist das, was ich vorschlagen:

  • Beitrag ein Bild mit Ihrer Maven/Annotation Verarbeitungseinstellungen in Eclipse (auch wenn Sie die richtige Option aktiviert zu haben scheinen).
  • Ein Bild mit Java/Compiler Einstellungen hochladen (es gibt ein Häkchen dort, das aktiviert werden muss; es funktioniert nicht ohne).
  • Die Veröffentlichung Ihrer pom.xml wäre seltsamerweise hilfreich. Vor allem, wenn Sie eine benutzerdefinierte Konfiguration für maven-compiler-plugin haben. Ein Teil dieser Konfiguration wird von m2e-apt wie Compiler-Argumenten interpretiert. Suchen Sie nach einer Datei namens .factorypath. Das ist, wo m2e-apt die Liste der Gläser hält, die es für die Annotationsverarbeitung scannt (Sie werden alle Gläser Ihres Projekts dort finden, obwohl sie tatsächlich keine Prozessoren enthalten, das heißt, es sei denn, Ihr maven-compiler-plugin ist nur so konfiguriert, um eine bestimmte Liste von Prozessoren betrachten). Wenn das Glas, das Ihren Prozessor enthält, nicht in .factorypath ist, wird es nicht funktionieren.
  • Last but not least, gibt es noch eine andere Sache, die Probleme verursachen kann. Wenn das Projekt, das den eigentlichen Annotationsprozessor (also NICHT den "Client") enthält, im selben Arbeitsbereich wie das "Client" -Projekt ist, ignoriert m2e-apt einfach Ihren Annotationsprozessor; Ich weiß nicht warum.Das Schließen Ihres Annotation-Prozessor-Projekts wäre in diesem Fall ausreichend (Sie müssen es nicht aus dem Arbeitsbereich löschen).

Edit: vergessen zu sagen, dass, wenn Sie tun über Maven Annotations Verarbeitung ausgeführt (und Sie Aufruf Maven nur Anmerkungen zu verarbeiten), dann sollte mvn compile genug sein. Außerdem müssen Sie es nicht separat ausführen (zuerst mvn clean, dann mvn compile). Sie können es in einem Schuss mit mvn clean compile laufen lassen; es soll genau den gleichen Effekt haben.

1

Stellen Sie sicher, dass Ihre Java-Projekteinstellungen (erreichbar mit der rechten Maustaste auf Projekt > Java compiler > Annotation processors) die Annotationsverarbeitung aktivieren und dass die Einstellungen Ihren Erwartungen entsprechen.

Für Maven-Projekt soll m2e diese Einstellungen entsprechend dem Inhalt pom.xml richtig konfigurieren. Dies funktioniert jedoch nicht reibungslos für alle Maven-Plugins (einige werden "out-of-the-box" unterstützt, einige andere benötigen ein spezielles Plugin ...).

+0

meines Wissens ist es nicht "m2e", die Annotationsverarbeitung behandelt. Es ist "m2e-apt". – Andrei

Verwandte Themen