Генерация кода в Maven

Я хочу автоматически сгенерировать некоторые классы Java из интерфейсов. Моей первой мыслью было написать генератор кода и интегрировать его как плагин maven.

Я думал о создании плагина maven с целью создания кода, которая вызывается в процессе сборки.

Итак, если я выберу этот маршрут, как мне предоставить плагину интерфейсы для обработки? И куда должны идти сгенерированные файлы?

Существуют ли какие-либо существующие плагины, которые можно настроить для создания реализаций классов по умолчанию?


person parkr    schedule 19.04.2009    source источник


Ответы (3)


Исходники должны находиться в {project.build.directory} / generated-sources / [plugin-id] /

Большинство плагинов принимают конфигурацию, передаваемую через раздел конфигурации плагинов в файле pom. Вы также можете использовать значения по умолчанию или сканирование аннотаций и путей к классам.

Плагин, такой как maven-jspc-plugin, генерирует код, который вы можно посмотреть. Электронная книга «Better Builds With Maven» также содержит достаточно исчерпывающую главу о написании плагинов.

person krosenvold    schedule 19.04.2009
comment
Это нормально, что они попадают в подкаталог сгенерированных источников. Я обнаружил, что поддержка NetBeans предполагает это. - person Dominic Mitchell; 20.04.2009
comment
Более полно, они должны войти в {project.build.directory} / generated-sources / ‹plugin-id›. - person rtenhove; 17.09.2009

Возможно, взгляните на плагин XDoclet Maven - XDoclet часто используется для генерации источников из разметки в стиле доклета в классах (например, автогенерирование интерфейсов MBean из реализаций), и это похоже на то, что вы делаете.

person araqnid    schedule 19.04.2009

Я использовал APT-Jelly для успешного создания исходного кода java из аннотированного java. Вы можете проверить это.

person AWhitford    schedule 15.09.2011