Korzystam z Eclipse Kepler, a kompilator jest skonfigurowany do używania Java 7. Mam procesor adnotacji zgodny z JSR269 w mojej ścieżce klasy (w kontenerze maven).
Jaki jest najłatwiejszy sposób uruchomienia tego procesora adnotacji?
Właściwie oczekiwałbym, że kompilacja Eclipse będzie automatycznie uruchamiała ten procesor adnotacji podczas kompilacji, ponieważ jest zgodna z JSR 269 - ale tak nie jest. Dlaczego nie - czy to z powodów związanych z wydajnością?
Uwaga: kompilacja maven z wiersza poleceń działa dobrze.
Po kilku badaniach okazało się, że takbyć skonfigurowany we właściwościach projektu (Kompilator Java - Przetwarzanie adnotacji - Ścieżka fabryczna). Pytanie brzmi: chcę oczywiście użyć pliku .jar procesora adnotacji, który jest już w ścieżce klasy (w kontenerze Maven). Jak mogę się do tego odwołać? Nie znalazłem sposobu, aby to zrobić.
Najlepsze, co wymyśliłem, to użyć M2_REPO
zmienna, a następnie ręcznie dodaj ścieżkę do procesora w następujący sposób:
M2_REPO/com/gwtplatform/gwtp-processors/1.0.1/gwtp-processors-1.0.1.jar
ma to oczywiście problem polegający na tym, że procesor jest teraz określony w 2 miejscach: w pliku maven pom oraz w projekcie eclipse. Jak tego uniknąć?
Odpowiedzi:
4 dla odpowiedzi № 1Potrzebujesz konektora m2e, który automatycznie konfiguruje projekt Eclipse do przetwarzania adnotacji.
Łącznik m2e, którego należy użyć, zależy od konfiguracji przetwarzania adnotacji po stronie Maven. Jeśli tylko polegasz na Wtyczka kompilatora maven znaleźć procesor adnotacji lub jeśli skonfigurowałeś maven-annotation-plugin w tym celu możesz użyć złącza m2e-apt autor: JBoss.
m2e-apt można łatwo zainstalować z m2e discoveryokno dialogowe w Eclipse („Okno” → „Preferencje” → „Maven” → „Odkrycie” → „Otwórz katalog”). Następnie włącz złącze w „Okno” → „Preferencje” → „Maven” → „Przetwarzanie adnotacji”. Kiedy teraz zaktualizujesz swój projekt Maven (kliknij prawym przyciskiem myszy projekt i wybierz „Maven” → „Aktualizuj projekt…”), wówczas przetwarzanie adnotacji dla projektu Eclipse powinno zostać automatycznie skonfigurowane w oknie dialogowym opisanym w pytaniu.