XJC: PluginImpl Unable to get public no-arg constructor

Использую плагин Gradle XJC Plugin версии 0.1.2:

Если Gradle запущен с Java 12, то выходит странная ошибка java.util.ServiceConfigurationError: com.sun.tools.xjc.Plugin: com.sun.tools.xjc.addon.accessors.PluginImpl Unable to get public no-arg constructor:

Долго искал проблему, но в конце концов нашёл решение. В такой старой версии плагина org.unbroken-dome.xjc, похоже чего-то не хватает для работы с новой Java. Зато если запустить в Java 8, то всё работает.

Выбрать версию Java, с которой будут запускаться задачи в Gradle для проекта в Eclipse можно так:

  1. Выберите проект в Project Explorer.
  2. Вызовите контекстное меню и выберите пункт Properties.
  3. В панели слева найдите Gradle.
  4. Поставьте галочку на Override workspace settings.
  5. Пропишите в Java home нужный вам путь.
Настраиваем путь к Java для Gradle в Eclipse

Если не хочется настраивать это на весь проект, то аналогичную настройку можно сделать для одной Run Configurations в меню Run, но лучше внутри одного проекта собирать таски с одной и той же версией Java.

Один комментарий к “XJC: PluginImpl Unable to get public no-arg constructor”

  1. Звиздец простыня!

    А по делу — jaxb в 12 версии уехал в модули, при запуске надо добавить —add-modules java.xml.bind

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *