使用maven-jaxb2-plugin生成代码在v0.12.0之后不能使用相同的配置

时间:2014-12-15 17:37:58

标签: jaxb xjc maven-jaxb2-plugin

同样的pom.xml正在使用maven-jaxb2-plugin v0.11但不能使用v0.12。

        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <extension>true</extension>
                <schemaDirectory>${basedir}/src/wsdl</schemaDirectory>
                <schemaIncludes>
                    <schemaInclude>*.wsdl</schemaInclude>
                </schemaIncludes>
                <bindingDirectory>${basedir}/src/jaxws/</bindingDirectory>
                <generateDirectory>${basedir}/target/jaxws/java</generateDirectory>
                <strict>false</strict>                  
                <verbose>true</verbose>
                <forceRegenerate>true</forceRegenerate>
                <args>
                    <arg>-Xfluent-api</arg>
                </args>
                <plugins>
                    <plugin>
                        <groupId>org.jvnet.jaxb2_commons</groupId>
                        <artifactId>jaxb2-fluent-api</artifactId>
                        <version>3.0</version>
                    </plugin>
                </plugins>
            </configuration>
        </plugin>

原因是因为在修复#23之后返回null而不是&#34; systemId&#34;在MavenCatalogResolver.java中(第64行)

Caused by: java.lang.NullPointerException
    at java.net.URI$Parser.parse(URI.java:3003)
    at java.net.URI.<init>(URI.java:578)
    at org.jvnet.jaxb2.maven2.resolver.tools.MavenCatalogResolver.getResolvedEntity(MavenCatalogResolver.java:64) at com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver.resolveEntity(CatalogResolver.java:192)

为了使其正常工作,我的pom.xml的正确配置是什么?

1 个答案:

答案 0 :(得分:4)

免责声明:我是maven-jaxb2-plugin的作者。

请提交问题here并向我发送一个示例项目进行重现(最好的是对tests的拉取请求。

我会尽快解决这个问题。

我想知道传递的systemId如何null,但无论如何它都是一个错误。将尽快修复,我只需要一个测试项目来重现。

<强>更新

0.12.2版本修复了您报告的NPE。但是,我不确定它是否修复了您的构建。你可能有一个不同的问题。我想知道systemId如何为空。

请将复制项目发给我进一步测试。

通常情况下,GitHub上的文件错误和问题会更好,而不是在SO上发布。