带有annox定制的JAXB单独片段失败:SAXParseException2
我有2个maven模块带有annox定制的JAXB单独片段失败:SAXParseException2,jaxb,maven-jaxb2-plugin,xmlcatalog,annox,jaxb-episode,Jaxb,Maven Jaxb2 Plugin,Xmlcatalog,Annox,Jaxb Episode,我有2个maven模块 第一个仅包含用于生成基本POJO类的xsd模式 第二个包含一个xsd模式,该模式使用目录文件导入第一个模式并生成新的POJO类。 这两代人都能工作 现在,我使用annox(Swagger注释)将注释添加到两个xsd文件中。 第一次模块编译成功,但第二次模块编译失败,出现以下异常: [ERROR] Error while generating code.Location : com.sun.istack.SAXParseException2; systemId: jar
- 第一个仅包含用于生成基本POJO类的xsd模式
- 第二个包含一个xsd模式,该模式使用目录文件导入第一个模式并生成新的POJO类。 这两代人都能工作
[ERROR] Error while generating code.Location : com.sun.istack.SAXParseException2; systemId: jar:file:/C:/commons-0.0.1-SNAPSHOT.jar!/Commons.xsd; lineNumber: 15; columnNumber: 36; compiler was unable to honor annox:annotate schemaBinding customization. It is attached to a wrong place, or its inconsistent with other bindings.
第一个模块
- “Commons.xsd”:
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns="http://www.test.com/commons" targetNamespace="http://www.test.com/commons" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:annox="http://annox.dev.java.net" xmlns:swagger="http://annox.dev.java.net/com.wordnik.swagger.annotations" xmlns:xs="http://www.w3.org/2001/XMLSchema" jaxb:extensionBindingPrefixes="annox" jaxb:version="2.1"> <xs:complexType name="BaseType"> <xs:annotation> <xs:appinfo> <annox:annotate target="class"> <swagger:ApiModel value="BaseType" description="Description" /> </annox:annotate> </xs:appinfo> </xs:annotation> <xs:sequence> <xs:element name="field1" type="xs:integer"/> </xs:sequence> </xs:complexType> </xs:schema>
- 'pom.xml':
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>commons</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <version>0.8.3</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <args> <arg>-Xannotate</arg> </args> <plugins> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics</artifactId> <version>0.6.5</version> </plugin> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics-annotate</artifactId> <version>0.6.5</version> </plugin> </plugins> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>extension</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>test</groupId> <artifactId>commons</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <version>0.8.3</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <args> <arg>-Xannotate</arg> </args> <episodes> <episode> <groupId>test</groupId> <artifactId>commons</artifactId> </episode> </episodes> <catalog>src/main/resources/catalog.xml</catalog> <plugins> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics</artifactId> <version>0.6.5</version> </plugin> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics-annotate</artifactId> <version>0.6.5</version> </plugin> </plugins> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
4.0.0 测试 平民 0.0.1-快照 罐子 com.wordnik 招摇过市的注解 1.3.2 org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.8.3 生成 -山奈特 org.jvnet.jaxb2_commons jaxb2基础知识 0.6.5 org.jvnet.jaxb2_commons jaxb2基础注释 0.6.5 com.wordnik 招摇过市的注解 1.3.2
- “Extension.xsd”:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns="http://www.test.com/extension" targetNamespace="http://www.test.com/extension" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:annox="http://annox.dev.java.net" xmlns:swagger="http://annox.dev.java.net/com.wordnik.swagger.annotations" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:c="http://www.test.com/commons" elementFormDefault="unqualified" attributeFormDefault="unqualified" jaxb:extensionBindingPrefixes="annox" jaxb:version="2.1"> <xs:import namespace="http://www.test.com/commons" schemaLocation="Commons.xsd" /> <xs:complexType name="Extension"> <xs:annotation> <xs:appinfo> <annox:annotate target="class"> <swagger:ApiModel value="Extension" description="Description" /> </annox:annotate> </xs:appinfo> </xs:annotation> <xs:complexContent> <xs:extension base="c:BaseType"> <xs:sequence> <xs:element name="field2" type="xs:integer" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:schema>
- 'pom.xml':
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>commons</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <version>0.8.3</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <args> <arg>-Xannotate</arg> </args> <plugins> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics</artifactId> <version>0.6.5</version> </plugin> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics-annotate</artifactId> <version>0.6.5</version> </plugin> </plugins> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>extension</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>test</groupId> <artifactId>commons</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <version>0.8.3</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <args> <arg>-Xannotate</arg> </args> <episodes> <episode> <groupId>test</groupId> <artifactId>commons</artifactId> </episode> </episodes> <catalog>src/main/resources/catalog.xml</catalog> <plugins> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics</artifactId> <version>0.6.5</version> </plugin> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics-annotate</artifactId> <version>0.6.5</version> </plugin> </plugins> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
4.0.0 测试 延伸 0.0.1-快照 罐子 测试 平民 ${project.version} org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.8.3 生成 -山奈特 测试 平民 src/main/resources/catalog.xml org.jvnet.jaxb2_commons jaxb2基础知识 0.6.5 org.jvnet.jaxb2_commons jaxb2基础注释 0.6.5 com.wordnik 招摇过市的注解 1.3.2
- “catalog.xml”
<?xml version="1.0" encoding="UTF-8"?> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <systemSuffix systemIdSuffix="Commons.xsd" uri="maven:test:commons!/Commons.xsd" /> </catalog>
几天来,我一直在试图解决这个错误,但都没有成功。使用annox和剧集时出现了一个bug 我已经通过外部绑定(xjb文件)解决了相同的问题。这样,模式也是干净的 e、 g
这是maven插件配置
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<args>
<arg>-Xannotate</arg>
<arg>-Xnamespace-prefix</arg>
<arg>-nv</arg>
</args>
<extension>true</extension>
<forceRegenerate>true</forceRegenerate>
<bindingDirectory>${basedir}/src/main/resources/schema/xjb</bindingDirectory>
<bindingIncludes>
<include>*.xjb</include>
</bindingIncludes>
<schemas>
<schema>
<fileset>
<directory>${basedir}/src/main/resources/schema/project/b</directory>
<includes>
<include>*.xsd</include>
</includes>
</fileset>
</schema>
<schema>
<dependencyResource>
<groupId>com.project.a</groupId>
<artifactId>artifact.a</artifactId>
<resource>schema/a.xsd</resource>
</dependencyResource>
</schema>
</schemas>
<episodes>
<episode>
<groupId>com.project.a</groupId>
<artifactId>artifact.a</artifactId>
</episode>
</episodes>
<debug>true</debug>
<verbose>true</verbose>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.6.2</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.2</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-namespace-prefix</artifactId>
<version>1.1</version>
</plugin>
</plugins>
</configuration>
</plugin>
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.8.1
生成源
生成
-山奈特
-XX名称空间前缀
-内华达州
真的
真的
${basedir}/src/main/resources/schema/xjb
*.xjb
${basedir}/src/main/resources/schema/project/b
*.xsd
com.project.a
人工制品
schema/a.xsd
com.project.a
人工制品
真的
真的
org.jvnet.jaxb2_commons
jaxb2基础知识
0.6.2
org.jvnet.jaxb2_commons
jaxb2基础注释
0.6.2
org.jvnet.jaxb2_commons
jaxb2名称空间前缀
1.1
您能否引用解决方案,该解决方案似乎无法在生产任务单上访问