2009-04-19 22 views
10

Chcę automatycznie generować niektóre klasy Java z interfejsów. Moją pierwszą myślą było napisanie generatora kodu i zintegro- wanie go jako maven plugin.Generowanie kodu w Maven

Zastanawiam się nad stworzeniem wtyczki maven z celem kodegen, który jest wywoływany podczas procesu kompilacji.

Więc jeśli wybiorę tę trasę, w jaki sposób mogę udostępnić wtyczkę interfejsom do przetworzenia? I gdzie powinny iść wygenerowane pliki?

Czy są jakieś istniejące wtyczki, które można skonfigurować do generowania domyślnych implementacji klas?

Odpowiedz

6

źródła powinny wchodzić {project.build.directory}/wytworzony-źródła/[wtyczki-id]/

Większość wtyczki się po przejściu przez sekcji konfiguracji wtyczek w pom konfiguracji. Możesz także użyć wartości domyślnych lub skanowania adnotacji i ścieżek klas.

Wtyczka taka jak maven-jspc-plugin generuje kod, który można obejrzeć. Książka elektroniczna "Better Builds With Maven" zawiera także dość obszerny rozdział na temat pisania wtyczek.

+0

To normalne, że przechodzą do podkatalogu generowanych źródeł. Odkryłem, że obsługa NetBeans zakłada to. –

+2

Dokładniej, powinny one wejść do {project.build.directory}/generated-sources/ rtenhove

3

Być może warto rzucić okiem na wtyczkę XDoclet Maven - XDoclet jest często używany do generowania źródeł ze znaczników stylu docletów w klasach (np. Autogenerowanie interfejsów MBean z implementacji) i brzmi podobnie do tego, co robisz.

1

Użyłem APT-Jelly do pomyślnego wygenerowania kodu źródłowego java z anotowanej javy. Możesz to sprawdzić.