JAXB2基本注释插件不与maven cxf codegen插件一起使用
我正在使用cxf codegen插件从wsdl文件生成Java类。我想向其中一个类添加注释,我指定了一个绑定文件,并使用jaxb2基础注释插件来完成。生成的文件不包含绑定文件中指定的注释 以下是pom文件中的配置JAXB2基本注释插件不与maven cxf codegen插件一起使用,maven,jaxb2-basics,cxf-codegen-plugin,Maven,Jaxb2 Basics,Cxf Codegen Plugin,我正在使用cxf codegen插件从wsdl文件生成Java类。我想向其中一个类添加注释,我指定了一个绑定文件,并使用jaxb2基础注释插件来完成。生成的文件不包含绑定文件中指定的注释 以下是pom文件中的配置 <plugins> <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artif
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.7.4</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>src/main/resources/wsdl/QueryJobService.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/QueryJobService.wsdl</wsdlLocation>
<extraargs>
<extraarg>-xjc-Xannotate</extraarg>
</extraargs>
<bindingFiles>
<bindingFile>src/main/resources/wsdl/xsd/job-bindings.xjb</bindingFile>
</bindingFiles>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
org.apache.cxf
cxf-codegen插件
2.7.4
生成源
生成源
src/main/resources/wsdl/QueryJobService.wsdl
类路径:wsdl/QueryJobService.wsdl
-xjc Xannotate
src/main/resources/wsdl/xsd/job-bindings.xjb
wsdl2java
org.jvnet.jaxb2_commons
jaxb2基础注释
1.0.1
这是绑定文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:annox="http://annox.dev.java.net"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
<jaxb:bindings schemaLocation="data.xsd" node="/xs:schema">
<jaxb:bindings node="//xs:complexType[@name='resource']">
<annox:annotate target="class">
<annox:annotate annox:class="javax.xml.bind.annotation.XmlSeeAlso" value="model.common.sm.dcp.com.data._1.SimOrder"/>
</annox:annotate>
</jaxb:bindings>
</jaxb:bindings>
在调试模式下运行maven不会显示任何奇怪的情况。cxf codegen插件和jaxb2 basics annotate是否不能一起工作?还是我的配置有问题 它应该与CXF配合使用 请确保应用了所有绑定。尝试将annox:annotate替换为类似于
-它是否生成为FooBar
还可以尝试新的Java语法:而不是XML
最后,我猜您的根jaxb:bindings
元素上可能缺少这个属性:
jaxb:extensionBindingPrefixes="annox"
看这个
如果没有什么帮助,给我发封信
因此,免责声明:我是jaxb2 annotate插件的作者。我似乎只能运行annotate或删除annotate,而不能同时运行和完成构建工作。这可能是我的配置有问题,但如果我尝试同时执行这两项操作,我会得到“annox:annotateClass”不是有效的自定义项。”(或者visa反之亦然,annox:removeAnnotation)我的配置与OP非常相似,因为找到这篇文章实际上使我能够让插件与wsdl2java一起运行这可能需要一个原始问题,或者一个PR,但我想我应该先试试这个方法。如果不看你的配置,很难说。我决定传递配置的最好方法就是在github上创建一个问题,所以我就这么做了。