我正在使用maven-jaxb2-plugin从导入到项目中的服务wsdl生成Java类。
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration> <schemaDirectory>src/main/resources</schemaDirectory>
<schemaLanguage>WSDL</schemaLanguage>
<schemaIncludes>
<schemaInclude>blabla.wsdl</schemaInclude>
</schemaIncludes>
<bindingIncludes>
<bindingInclude>bindings.xjb</bindingInclude>
</bindingIncludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
这很好用,并且为每个对象生成了构建器函数。因此,基本的.withParameter(Param param)函数可以设置值并返回自身。
不幸的是,没有将XmlRootElement批注添加到主请求en响应对象中。我了解到您可以通过添加插件jasb2-basics-annotate来添加它,并将参数-Xannotate添加到pom。
结果为pom:
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<args>
<arg>-Xannotate</arg>
</args>
<plugins>
<plugin> <groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.0</version>
</plugin>
</plugins>
<schemaDirectory>src/main/resources</schemaDirectory>
<schemaLanguage>WSDL</schemaLanguage>
<schemaIncludes>
<schemaInclude>blabla.wsdl</schemaInclude>
</schemaIncludes>
<bindingIncludes>
<bindingInclude>bindings.xjb</bindingInclude>
</bindingIncludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
这对于我需要的@XmlRootElement注释很好用。但是不幸的是,不再生成构建器函数。现在,对象只有吸气剂和吸气剂。
有人知道是什么原因造成的吗?是否有办法让它再次生成这些功能?
答案 0 :(得分:0)
您可以在jaxb2-basics-annotate之后添加另一个插件来生成构建器,即:
<plugin>
<groupId>net.java.dev.jaxb2-commons</groupId>
<artifactId>jaxb-fluent-api</artifactId>
<version>2.1.8</version>
</plugin>
还必须包括以下参数:
<args>
<arg>-Xannotate</arg>
<arg>-Xfluent-api</arg>
</args>
还请检查fluent-api插件是否尚未添加到配置的另一部分(可能是pom层次结构父级之一中的 pluginManagement ),因为问题可能是您只是在 plugins 中的 pluginManagement 中覆盖了args,这就是它停止工作的原因。