asg*_*sgs 6 jaxb xjc maven-jaxb2-plugin
我正在尝试使用带有自定义绑定的Maven XJC插件从一组XSD文件生成Java类.自定义被添加到JAXB生成的类的前缀.但是,当maven构建运行时,XJC插件似乎无法识别该schemaBindings
元素并将该异常抛出.
[ERROR] Error while parsing schema(s).Location [ file:/C:/blah/bindings.xjb{5,25}].
com.sun.istack.SAXParseException2: The "jaxb:schemaBindings" customization is no
t associated with any schema element.
at com.sun.tools.xjc.reader.internalizer.Internalizer.reportError(Intern
alizer.java:632)
at com.sun.tools.xjc.reader.internalizer.Internalizer.reportError(Intern
alizer.java:626)
at com.sun.tools.xjc.reader.internalizer.Internalizer.move(Internalizer.
java:451)
at com.sun.tools.xjc.reader.internalizer.Internalizer.transform(Internal
izer.java:160)
at com.sun.tools.xjc.reader.internalizer.Internalizer.transform(Internal
izer.java:109)
at com.sun.tools.xjc.reader.internalizer.DOMForest.transform(DOMForest.j
ava:449)
at com.sun.tools.xjc.ModelLoader.buildDOMForest(ModelLoader.java:345)
at com.sun.tools.xjc.ModelLoader.loadXMLSchema(ModelLoader.java:377)
at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:174)
at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:119)
at org.jvnet.mjiip.v_2_2.XJC22Mojo.loadModel(XJC22Mojo.java:45)
at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:35)
at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:22)
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.doExecute(RawXJC2Mojo.java:282)
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.execute(RawXJC2Mojo.java:147)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi
fecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6
0)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Run Code Online (Sandbox Code Playgroud)
bindings.jxb如下.
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
jaxb:version="2.1" schemaLocation="blah.xsd">
<jaxb:schemaBindings>
<jaxb:nameXmlTransform>
<jaxb:elementName suffix="Type"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxb:bindings>
Run Code Online (Sandbox Code Playgroud)
以下插件用于生成Java类.在mvn
此处粘贴相关代码段.
<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>
<dependencies>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.6</version>
</dependency>
</dependencies>
<configuration>
<schemaDirectory>./src/main/resources</schemaDirectory>
<includeBindings>
<includeBinding>**/*.xjb</includeBinding>
</includeBindings>
<extension>true</extension>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我可以在这个问题上找到的唯一其他讨论围绕着我没有使用的JAX-WS,因为这里没有涉及WSDL文件.这是所有XSD文件.
我不明白为什么会出现这个错误,因为JAXB的binding.xsd
文件确实定义了schemaBindings
如下所示的元素.
<xs:element name="schemaBindings" substitutionGroup="jaxb:declaration">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="jaxb:package"/>
<xs:element minOccurs="0" ref="jaxb:nameXmlTransform"/>
</xs:sequence>
<xs:attribute name="map" type="xs:boolean" />
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
任何关于这个问题的提示都将非常感激.如果需要更多输入,请告诉我.谢谢!
编辑:互联网上的很多人似乎没有任何问题使用schemaBindings.可能这是问题中提到的依赖关系的问题?
您jaxb:schemaBindings
必须将绑定与特定架构架构相关联.通过架构位置或scd.请参阅http://jaxb.java.net/guide/Customizing_Java_packages.html
归档时间: |
|
查看次数: |
11147 次 |
最近记录: |