Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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/0/xml/12.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
如何更改从XSD(JAXB)生成Java的默认目录_Java_Xml_Xsd_Jaxb_Maven Jaxb2 Plugin - Fatal编程技术网

如何更改从XSD(JAXB)生成Java的默认目录

如何更改从XSD(JAXB)生成Java的默认目录,java,xml,xsd,jaxb,maven-jaxb2-plugin,Java,Xml,Xsd,Jaxb,Maven Jaxb2 Plugin,我有一个manve项目,我正在使用JAXB2插件从XSD模式生成java类。默认情况下,类在目标文件夹中生成,但我需要在src/main/java文件夹中生成 我尝试添加line属性generateDirectory。这些类是在我想要的地方生成的,但是我不能在其他地方导入它们 以下是我的pom.xml: <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId>

我有一个manve项目,我正在使用JAXB2插件从XSD模式生成java类。默认情况下,类在目标文件夹中生成,但我需要在src/main/java文件夹中生成

我尝试添加line属性generateDirectory。这些类是在我想要的地方生成的,但是我不能在其他地方导入它们

以下是我的pom.xml:

        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.13.1</version>
            <configuration>
                <schemaDirectory>src/main/resources/schemas</schemaDirectory>
                <generateDirectory>src/main/java/com/evol/foo/generated-bar-sources</generateDirectory>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
我正在使用IntellijComunity和Java8。
我做错了什么?

我认为应该使用
generatePackage
generateDirectory
之外声明包:

<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.13.1</version>
    <configuration>
        <schemaDirectory>src/main/resources/schemas</schemaDirectory>
        <generateDirectory>src/main/java</generateDirectory>
        <generatePackage>com.evol.foo.generated-bar-sources</generatePackage>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
</plugin>

org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.13.1
src/main/resources/schemas
src/main/java
com.evol.foo.generated-bar-sources
生成

在生成的Java类中检查包声明。我怀疑这仍然是默认的。虽然我从未使用过jaxb maven插件,但当我使用命令行工具生成类时,我必须同时指定目标目录和目标包名称。在编译阶段之前,尝试显式执行插件目标。例如,
maven clean org.jvnet.jaxb2.maven2:generate compile
。或者通过在
标签中添加
compile
,尝试将插件的目标绑定到构建阶段
compile
<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.13.1</version>
    <configuration>
        <schemaDirectory>src/main/resources/schemas</schemaDirectory>
        <generateDirectory>src/main/java</generateDirectory>
        <generatePackage>com.evol.foo.generated-bar-sources</generatePackage>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
</plugin>