2012-04-16 2 views
2

У меня есть пакет с несколькими классами Java внутри.
Мне нужно прочитать xml-файлы с данными классов пакетов.
Существует ли автоматический способ (с использованием maven) генерировать класс ObjectFactory или файл jaxb.index из содержимого пакета?
Я знаю, что я могу инициировать контекст jaxb с помощью определенных классов, но это заставит меня менять код каждый раз, когда я добавляю новый класс.
Спасибо заранее,
АвнерАвтоматическое создание файла jaxb.index с помощью maven

ответ

2

Вы должны использовать jaxb2-Maven плагин для создания других вещей. Если классы имеют соответствующие аннотации, это не должно быть проблемой.

<groupId>org.codehaus.mojo</groupId> 
<artifactId>jaxb2-maven-plugin</artifactId> 
<version>1.3.1</version> 

Смотрите здесь: http://mojo.codehaus.org/jaxb2-maven-plugin/

+0

Я не думаю, что вы можете использовать плагин, чтобы просто сгенерировать фабрику объектов для уже написанных классов Java. Если вы начнете с XSD, он будет генерировать классы java и фабрику, но это не мой случай. Если есть возможность запустить его на пакете с существующими классами и попросить генерировать только заводский класс, пожалуйста, дайте мне знать. Спасибо, Avner –

+0

Сначала вы можете создать XSD из него, а из XSD вы можете создать код, содержащий фабрики. После этого просто удалите остальных. – khmarbaise

0

После выполнения некоторых исследований я решил использовать JAXBContext.newInstance API, который принимает массив классов. Я написал короткую оболочку, которая принимает имена пакетов и просматривает их с использованием Spring для соответствующих классов (на основе аннотации XmlRootElement). то я использую вышеуказанный API для создания контекста jaxb. Поскольку это дорогостоящая операция, вы должны рассмотреть возможность кэширования этих контекстов (которые являются потокобезопасными) для будущего использования.

Смежные вопросы