Использовать jaxb:class и annox:annotate вместе в jaxb2-maven-plugin?

Когда я использую jxb:class с annox:annotateЯ получаю это исключение:

com.sun.istack.SAXParseException2; systemId: file:/usr/workspace/project/package/file.xjb; lineNumber: 16; columnNumber: 35; the compiler failed to honor this customization annox: annotate. He was attached to an incorrect location or is inconsistent with other binds.
    at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:86)
    at com.sun.tools.xjc.model.Model.generateCode(Model.java:310)
    at com.sun.tools.xjc.Driver.run(Driver.java:363)
    at org.codehaus.mojo.jaxb2.AbstractXjcMojo.execute(AbstractXjcMojo.java:316)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)

Я использовал эту конфигурацию:

<jxb:bindings node="xs:complexType[@name='MyType']//xs:element[@name='property']">
    <jxb:class ref="org.project.model.MyType" />
</jxb:bindings>

1 ответ

РЕДАКТИРОВАТЬ: Я мог ошибаться в моей интерпретации. Я все равно оставлю ответ, пока мы его не очистим.


Автор /questions/tagged/maven-jaxb2-plugin и annox здесь.

Совершенно очевидно, что это не сработает.

Это:

<jxb:class ref="org.project.model.MyType" />

Указывает JAXB использовать предположительно существующий класс org.project.model.MyType вместо генерации нового на. Так что класс не сгенерирован, поэтому /questions/tagged/jaxb2-annotate-plugin имеет ничего, чтобы добавить аннотации.

Надеюсь, понятно, почему вы не можете добавлять аннотации к уже существующим классам.:) Это было бы слишком много, чтобы спросить. Вы можете добавлять аннотации только к сгенерированным классам.

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