Генератор кода на основе Maven - PullRequest
1 голос
/ 02 ноября 2011

Мне нужно иметь файл 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 ]

1 голос
/ 03 ноября 2011

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

0 голосов
/ 03 ноября 2011

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

...