Генератор кода на основе Maven

Мне нужно иметь config.xml файл в моем проекте Eclipse, и использовать этот файл в качестве входных данных для цели Maven. Эта цель будет использовать config.xml автоматически генерировать код (как XML, так и Java) под generated/ каталог (также в моем проекте).

Таким образом:

MyProject/
    src/main/config
        config.xml
    src/main/java
        (All my Java source)
    (rest of my project)
    generated
        source/
            java/
            xml/

Таким образом, цель Maven будет начата до любого compile- или же buildсвязанных целей и будет использовать config.xml заселить generated/source/* каталоги, как они мне нужны. Эти источники затем будут доступны для последующей обработки.

Существует ли такой инструмент? Самый близкий мне найти XDoclet, но у меня есть две проблемы с ним:

  1. Я не могу сказать, насколько он гибок; то есть, в какой степени я могу поместить свои собственные файлы конфигурации в config.xml, дать XDoclet XSD и отпустить его в город; подробнее об этом ниже
  2. Не могу найти никаких целей / плагинов для Maven.

Что касается первого пункта / проблемы, то я имею в виду следующее: в идеале я хотел бы поместить любой вид XML внутрь config.xml, Итак, для этого идеального инструмента требуется только XSD для этого XML и немного XSLT (или тому подобное), чтобы определить, как автоматически генерировать код из XML, найденного в файле конфигурации.

Я не уверен, что XDoclet допускает такую ​​гибкость.

Есть идеи или предложения? Там должно быть что- то вроде этого! Заранее спасибо,

2 ответа

Решение

XDoclet довольно гибкий, но он предназначен для обработки исходных текстов Java и создания чего-то из этого. Если вы начнете с некоторого xml, вашим лучшим выбором будет XSLT-преобразование - xdoclet не подходит для этого.

Я использую antrun и задачу xslt, которая работает с Ant для создания других артефактов кода. Затем используйте плагин build-helper, чтобы добавить сгенерированные папки в список исходных папок. Это должно предоставить вам наиболее гибкую базу для написания кода, а также работать с m2e (хотя вам нужно запускать maven generate-sources самостоятельно, так как antrun не будет запускаться автоматически, поскольку для него еще нет соединителя).

Другие вопросы по тегам