Плагин JAXB2 Maven не может генерировать аннотации или вводить код

#maven-2 #jaxb2 #maven-jaxb2-plugin

#maven-2 #jaxb2 #maven-jaxb2-plugin

Вопрос:

В настоящее время у меня есть задача ant, которая отлично справляется с созданием объектов моего домена из файлов привязки xsd и xjb. Он создает аннотации и вводит код там, где мне это нужно, на основе пользовательского плагина.

Теперь я пытаюсь перенести все это в Maven, и хотя я могу генерировать объекты, я не могу получить код для ввода или добавления аннотаций. Моя запись плагина POM выглядит следующим образом:

 <plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.0</version>
<executions>
    <execution>
        <goals>
            <goal>generate</goal>
        </goals>
    </execution>
</executions>
<configuration>
    <bindingDirectory>src/main/resources/jaxb/bindings</bindingDirectory>
    <generatePackage>com.noush.web.domain.model.data</generatePackage>
    <extension>true</extension>
    <verbose>true</verbose>
    <args><!-- <arg>-XtoString</arg> -->
        <!-- I want to use commons-lang-plugin to generate toString but this can 
            wait <arg>-Xcommons-lang</arg> <arg>-Xcommons-lang:ToStringStyle=SIMPLE_STYLE</arg> -->
        <arg>-Xannotate</arg>
        <arg>-Xinject-code</arg>
    </args>
    <plugins>
        <plugin>
            <groupId>noush</groupId>
            <artifactId>code-expander-plugin</artifactId>
            <version>1.0</version>
        </plugin>
        <plugin>
            <groupId>org.jvnet.jaxb2_commons</groupId>
            <artifactId>jaxb2-basics-annotate</artifactId>
            <version>0.6.0</version>
        </plugin>

    </plugins>
</configuration>


 </plugin>
  

Объекты создаются, но без какого-либо введенного кода или аннотаций. Вывод не дает никаких указаний на то, что что-то не так.

Если это поможет, вот моя рабочая конфигурация ant:

  <target name="defineXjcTask">
    <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask" classpathref="xjcLib" />
</target>

<target name="generateJaxb">
    <xjc target="${build.generated}" package="${noushweb.domain.model.jaxb.package}">
        <arg value="-verbose"/>
        <arg value="-extension"/>
        <arg value="-Xcommons-lang"/>
        <arg value="-Xcommons-lang:ToStringStyle=SIMPLE_STYLE"/>
        <arg value="-Xinject-code"/>
        <arg value="-Xannotate"/>
        <schema dir="${build.directory}/jaxb/bindings" includes="${matmWS.mmmws.data.filename}" />
        <binding dir="${build.directory}/jaxb/bindings" includes="${matmWS.mmmws.binding.filename}"/>
        <produces dir="${build.generated}/${noushweb.domain.model.jaxb.package.dir}" includes="**/*.java" />
    </xjc>
</target>

<path id="xjcLib">
    <pathelement location="${lib.dir}/jaxb-ri-2.0.5/lib/jaxb-xjc.jar" />
    <pathelement location="${ib.dir}/jaxb-ri-2.0.5/lib/jaxb-api.jar" />
    <pathelement location="${lib.dir}/jaxb-ri-2.0.5/lib/jaxb-impl.jar" />
    <pathelement location="${lib.dir}/jaxb-ri-2.0.5/lib/activation.jar" />
    <pathelement location="${lib.dir}/jaxb-ri-2.0.5/lib/jsr173_1.0_api.jar" />
    <pathelement location="../lib/stax-api-1.0-2.jar" />
    <pathelement location="../lib/jaxb-commons-lang-plugin-2.2.jar" />
    <pathelement location="${lib.dir}/commons-lang-2.4/lib/commons-lang-2.4.jar" />
    <pathelement location="../lib/code-expander-plugin.jar" />
    <pathelement location="../lib/jaxb2-basics-runtime-0.6.0.jar" />
    <pathelement location="../lib/jaxb2-basics-tools-0.6.0.jar" />
    <pathelement location="../lib/jaxb2-basics-annotate-0.6.0.jar" />
    <pathelement location="../lib/annox-0.5.0.jar" />
    <pathelement location="${lib.dir}/axis-1_4/lib/commons-logging-1.0.4.jar" />
    <pathelement location="${lib.dir}/hibernate-validator-4.1.0.Final/hibernate-validator-4.1.0.Final.jar"/>
    <pathelement location="${lib.dir}/hibernate-validator-4.1.0.Final/validation-api-1.0.0.GA.jar"/>
</path>
  

Думаю, я мог бы использовать настройку antrun, но я надеялся, что смогу заставить это работать.

Любые мысли будут приветствоваться.

Спасибо, нет

Комментарии:

1. Пожалуйста, запустите mvn -e -X и добавьте журнал в свой пост. Плагины работают с Maven, есть много проектов, использующих это. Вероятно, какая-то проблема с конфигурацией. Вы также можете указать проблему на java.net/jira/browse/MAVEN_JAXB2_PLUGIN публикация вашего проекта. Я рассмотрю подробнее.

2. Этот пример при просмотре кода может помочь: codereview.stackexchange.com/questions/1877 /…