jaxb2-basics-annotate 与 jaxws-maven-plugin 配置
jaxb2-basics-annotate with jaxws-maven-plugin configuration
我有一个 Maven 配置,使用 jaxws-maven-plugin 从 wsdl 生成 class 文件。
我正在尝试让 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>-->
当我注释掉 args 时,出现以下错误:
[ERROR] Using "http://annox.dev.java.net" customizations requires the
"-Xannotate" switch to enable this plug-in.
当我使用 args 时,我收到以下错误消息:
unrecognized parameter -Xannotate
Usage: wsimport [options]
where [options] include:
如果有人可以填补我配置中的空白,让注释插件与 jaxws-maven-plugin 一起工作,我将不胜感激。
您可以将 -X 标志设置为 xjcArgs
而不是 args
<xjcArgs>
<xjcArg>-Xannotate</xjcArg>
</xjcArgs>
我找到了解决方案 。通过添加 -Dcom.sun.tools.xjc.XJCFacade.nohack=true
系统 属性,我能够解决问题。
我花了一些时间,但终于找到了适合我的组合:
可能最重要的事情是同时做这两件事:定义 xjcArg: -Xannotate
并在插件定义中定义对 org.jvnet.jaxb2_commons:jaxb2-basics-annotate 的依赖。
我有一个 Maven 配置,使用 jaxws-maven-plugin 从 wsdl 生成 class 文件。
我正在尝试让 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>-->
当我注释掉 args 时,出现以下错误:
[ERROR] Using "http://annox.dev.java.net" customizations requires the "-Xannotate" switch to enable this plug-in.
当我使用 args 时,我收到以下错误消息:
unrecognized parameter -Xannotate
Usage: wsimport [options]
where [options] include:
如果有人可以填补我配置中的空白,让注释插件与 jaxws-maven-plugin 一起工作,我将不胜感激。
您可以将 -X 标志设置为 xjcArgs
而不是 args
<xjcArgs>
<xjcArg>-Xannotate</xjcArg>
</xjcArgs>
我找到了解决方案 -Dcom.sun.tools.xjc.XJCFacade.nohack=true
系统 属性,我能够解决问题。
我花了一些时间,但终于找到了适合我的组合: 可能最重要的事情是同时做这两件事:定义 xjcArg: -Xannotate 并在插件定义中定义对 org.jvnet.jaxb2_commons:jaxb2-basics-annotate 的依赖。