2016-04-06 4 views
1

Ich entwickle ein Eclipse-Plugin, das den AST des gerade geöffneten Java-Projekts scannt und modifiziert.Eine Java-Annotation aus einem Eclipse-Plugin beisteuern

Ich möchte eine Java-Annotation erstellen, die in Projekten, die das Plug-in verwenden, als bekannte Annotation angezeigt wird. Die Annotation RetentionPolicy wird SOURCE sein (daher wird sie vom Compiler verworfen), aber das Plugin wird in der Lage sein, die mit dieser Annotation markierten Methoden zu identifizieren (AST) und sie entsprechend zu behandeln.

Zum Beispiel:

@SkipAnalysis 
public void foo() {...} 

Diese Anmerkung wird vom Plugin analysiert werden, während des AST durchquert, aber es hält keinen Wert für den Compiler.

Wie kann mein Plugin Anmerkungen zu einem geöffneten Projekt im Arbeitsbereich beitragen?

Antwort

0

Nach einigen Nachforschungen stellt sich heraus, dass dies unmöglich ist, da Annotationen (und andere Klassen oder Interfaces) nur über den Build-Pfad beigetragen werden können. Eclipse-Plugins können den Build-Pfad ändern, können jedoch keinen eigenen Quellcode zu einem Projekt hinzufügen.

Eine der Möglichkeiten besteht darin, ein Bibliotheksprojekt mit der Anmerkung zu erstellen und dann die Fähigkeit des Plugins zu verwenden, den Erstellungspfad zu ändern, um diese Bibliothek dem Erstellungspfad hinzuzufügen. Dies ist jedoch umständlich und fügt dem Projekt unnötige Abhängigkeiten hinzu, und wenn die Bibliothek nicht zu jedem anderen Entwickler kopiert wird, der an dem Projekt arbeitet, kann dies zu Kompilierungsfehlern führen. Eine Ausnahme ist, wenn das Projekt ein Buildautomatisierungssystem (wie Maven oder Gradle) verwendet und die Bibliothek in einem öffentlichen Repository (wie Maven Central) gespeichert wird, um sicherzustellen, dass jeder Benutzer, der das Projekt in jede IDE importiert, diese Bibliothek herunterlädt . Wieder - möglich, aber umständlich.

Verwandte Themen