Несколько лет назад я написал приложение, которое использовало JAXB для создания привязок Java для XML-схемы. Коды приложений и схема были обновлены довольно много за эти годы, но банки JAXB остались неизменными с 2008 года, когда я начал использовать JAXB для этого приложения. Я использовал Ant для создания приложения, включая создание и компиляцию привязок, и все работало нормально, по крайней мере, на двух машинах разработки XP Pro. Я внес некоторые изменения в схему и никогда не думал о JAXB.JAXB обратная совместимость
Недавно я попытался восстановить приложение с нуля на новом ноутбуке, и сборка продолжает терпеть неудачу. Новый 64-разрядный ноутбук работает под управлением Windows 7 Pro, у него появился новый JDK (1.7.0_45) и новая версия Ant (1.9.3). Мне удалось обойти некоторые странные проблемы, переключившись на еще более новую версию ant (1.9.4) и переключившись на последние JAXB-банки. На данный момент я даже не помню, каковы были эти проблемы (но я могу воссоздать их, вернувшись к более старым JAXB-банкам в SVN).
После обновления JAXB у меня возникли проблемы. Прежде всего, задача xjc в муравьике, по-видимому, интерпретирует атрибут target
по-разному; он бросил некоторую ошибку, и, видимо, destdir
имеет смысловое значение, которое раньше имело target
.
Во-вторых, эта задача больше не генерирует пакет impl
с классами реализации, имена которых должны были заканчиваться типом, так что остальная часть моего кода выходит из строя с кучей проблем компиляции.
Есть ли способ сделать новую версию JAXB обратной совместимостью? Мои другие варианты - попробовать обновить код для работы с новыми привязками, что кажется много ненужной работой или возвращением к старым JDK и Ant.
Я думаю, что я пробовал что-то вроде этого, но это не сработало, поэтому я решил, что делаю что-то неправильно. Я получаю ошибку _Illegal версии 1.0_, когда я указываю эти атрибуты с этими значениями, или просто 'source =" 1.0 "'. Если я укажу только 'target =" 1.0 "' Я получаю _1.0, это не допустимый номер версии. Возможно, вы имели в виду @destdir? _. Это довольно запутанно. – biggvsdiccvs