Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何告诉Maven不要忽略导入的XSD中的名称空间属性?_Java_Maven_Xjc_Maven Jaxb2 Plugin_Jaxb2 Maven Plugin - Fatal编程技术网

Java 如何告诉Maven不要忽略导入的XSD中的名称空间属性?

Java 如何告诉Maven不要忽略导入的XSD中的名称空间属性?,java,maven,xjc,maven-jaxb2-plugin,jaxb2-maven-plugin,Java,Maven,Xjc,Maven Jaxb2 Plugin,Jaxb2 Maven Plugin,我使用mojohaus jaxb2 maven插件从xsd模式文件生成Java源代码。我的pom.xml如下所示: ... <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <version>2.5.0</ve

我使用mojohaus jaxb2 maven插件从xsd模式文件生成Java源代码。我的pom.xml如下所示:

...    
<plugin>

            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>2.5.0</version>
            <executions>
                <execution>
                    <id>xjc-1</id>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                    <configuration>
                        <packageName>my.first.package.types</packageName>
                        <sources>
                            <source>src/main/java/META-INF/wsdl/firstSchema.xsd</source>                                
                        </sources>                          
                    </configuration>
                </execution>
                <execution>
                    <id>xjc-2</id>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                    <configuration>
                        <packageName>my.second.package.types</packageName>
                        <sources>                                                       
                            <source>src/main/java/META-INF/wsdl/secondSchema.xsd</source>
                        </sources>
                        <clearOutputDir>false</clearOutputDir>              
                    </configuration>
                </execution>
            </executions>
            <configuration>
                <outputDirectory>src/main/javagen</outputDirectory>
            </configuration>
        </plugin>
。。。
org.codehaus.mojo
.
当我运行构建时,从第一个模式生成的源文件也被放入第二个包中。谁能给我解释一下为什么会这样?那是一只虫子还是我遗漏了什么

非常感谢您的任何意见

编辑:

我也尝试了maven-jaxb2-plugin。同样的结果!所以这似乎是generell maven的问题。我对maven-jaxb2-plugin的插件配置如下:

...
            <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.14.0</version>
            <executions>
                <execution>
                    <id>first</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <schemaIncludes>
                            <include>firstSchema.xsd</include>
                        </schemaIncludes>
                        <generatePackage>my.first.package.types</generatePackage>
                    </configuration>
                </execution>
                <execution>
                    <id>second</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>                         
                        <schemaIncludes>
                            <include>secondSchema.xsd</include>
                        </schemaIncludes>
                        <generatePackage>my.second.package.types</generatePackage>
                    </configuration>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>src/main/java/META-INF/wsdl</schemaDirectory>
                <generateDirectory>src/main/javagen</generateDirectory>
            </configuration>
        </plugin>
。。。
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.14.0
第一
生成
firstSchema.xsd
我的.first.package.types
第二
生成
secondSchema.xsd
my.second.package.types
src/main/java/META-INF/wsdl
src/main/javagen
有人有什么想法吗?这开始让我有点恼火了

编辑:

我发现这与某些xsd文件导入了如下文件有关:

<xs:import namespace="http://referenced/namespace"
           schemaLocation="referencedSchema.xsd" />


在我看来,Maven似乎忽略了名称空间标记。我怎么能告诉Maven停止那样做

我可以回答很久以前我自己的问题。问题是我们还使用maven jaxws插件从wsdl文件生成web服务。这两个插件实际上都获取底层xsf文件,并为各自的包生成数据结构类。因此,解决方案是从pom中删除jaxb插件。所有XSD只生成一次