jaxb2-basics-annotate с конфигурацией jaxws-maven-plugin
У меня есть конфигурация maven с использованием jaxws-maven-plugin для генерации файлов классов из wsdl.
Я пытаюсь заставить плагин jaxb2-basics-annotate работать с поколением, чтобы позволить мне добавить некоторые аннотации к сгенерированному выводу.
Конкретная конфигурация плагина:
<pluginManagement>
<plugins>
<plugin>
<!-- This is the WSIMPORT plugin used to generate code from WSDL -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- Keep generated files -->
<keep>true</keep>
<!-- generated source files destination-->
<sourceDestDir>target/generated-sources</sourceDestDir>
<!-- this is so the xsd files can be accessed -->
<vmArgs>
<vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
</vmArgs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
...
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>travel-itinerary</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<extension>true</extension>
<!--<args>-->
<!--<arg>-Xannotate</arg>-->
<!--</args>-->
Когда я закомментирую аргументы, я получаю следующую ошибку:
[ОШИБКА] Для использования настроек " http://annox.dev.java.net/" требуется ключ "-Xannotate", чтобы включить этот плагин.
Когда я использую args, я получаю следующее сообщение об ошибке:
нераспознанный параметр -Xannotate
Использование: wsimport [опции]
где [варианты] включают в себя:
Я был бы очень признателен, если бы кто-то мог заполнить пробел в моей конфигурации, чтобы плагин аннотации работал с плагином jaxws-maven-plugin.
1 ответ
Мне потребовалось некоторое время, но, наконец, я нашел комбинацию, которая работает для меня: вероятно, самое важное - сделать и то, и другое: определить xjcArg: -Xannotate и определить зависимость от org.jvnet.jaxb2_commons:jaxb2-basics-annotate в плагине определение.
Я нашел решение здесь. Добавляя -Dcom.sun.tools.xjc.XJCFacade.nohack=true
Системное свойство, я смог решить проблему.
Вы можете установить флаги -X на xjcArgs
вместо args
<xjcArgs>
<xjcArg>-Xannotate</xjcArg>
</xjcArgs>