Maven Jaxb插件无法从目标文件夹

时间:2016-11-25 03:01:59

标签: java xml maven xsd jaxb

我尝试从maven依赖项中复制xsd文件并将其与我项目的其他xsd文件一起放入目标文件夹中,之后我想生成jaxb类但它不能在同一时间生成它们。 当我只创建依赖项的xsd文件的代码时,它可以生成jaxb类,但是对于我项目的xsd文件,它不能生成。

    <plugin>
     <!-- copy the xsdl files of my current project into the target folder-->
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-resources-xsd</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/tmp/schemas</outputDirectory>
                        <encoding>UTF-8</encoding>
                        <resources>
                            <resource>
                                <directory>${basedir}/src/main/schemas</directory>
                                <includes>
                                    <include>**/*.xsd</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
   <!--copy the xsd files of the dependency into the target folder of my current project-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-libraries</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.my.dependency</groupId>
                                <artifactId>res-communes</artifactId>
                                <version>${res-communes.version}</version>
                                <type>xsd</type>
                                <classifier>typesFy</classifier>
                                <destFileName>typesFy.xsd</destFileName>
                                <outputDirectory>${project.build.directory}/tmp/schemas</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>true</overWriteSnapshots>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>${maven-jaxb2-plugin.version}</version>
            <dependencies>
                <dependency>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-annotations</artifactId>
                    <version>${jackson.version}</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <extension>true</extension>
                <enableIntrospection>true</enableIntrospection>
                <markGenerated>true</markGenerated>
                <schemas>
                    <schema>
                        <fileset>
                            <directory>${project.build.directory}/tmp/schemas</directory>
                        </fileset>
                    </schema>
                </schemas>
                <args>
                    <arg>-Xts:style:org.apache.commons.lang.builder.ToStringStyle.MULTI_LINE_STYLE</arg>
                    <arg>-Xbg</arg>
                    <arg>-Xfluent-api</arg>
                    <arg>-Xinheritance</arg>
                    <arg>-Xannotate</arg>
                    <arg>-XJsr303Annotations</arg>
                </args>
                <plugins>
                    <plugin>
                        <groupId>org.jvnet.jaxb2_commons</groupId>
                        <artifactId>jaxb2-basics</artifactId>
                        <version>${jaxb2-basics.version}</version>
                    </plugin>
                    <plugin>
                        <groupId>org.jvnet.jaxb2_commons</groupId>
                        <artifactId>jaxb2-basics-annotate</artifactId>
                        <version>${jaxb2-basics-annotate.version}</version>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.cxf.xjcplugins</groupId>
                        <artifactId>cxf-xjc-ts</artifactId>
                        <version>${cxf-xjc-ts.version}</version>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.cxf.xjcplugins</groupId>
                        <artifactId>cxf-xjc-boolean</artifactId>
                        <version>${cxf-xjc-boolean.version}</version>
                    </plugin>
                    <plugin>
                        <groupId>org.jvnet.jaxb2_commons</groupId>
                        <artifactId>jaxb2-fluent-api</artifactId>
                        <version>${jaxb2-fluent-api.version}</version>
                    </plugin>
                    <plugin>
                        <groupId>com.github.krasa</groupId>
                        <artifactId>krasa-jaxb-tools</artifactId>
                        <version>${krasa-jaxb-tools.version}</version>
                    </plugin>
                </plugins>
            </configuration>
        </plugin>

1 个答案:

答案 0 :(得分:2)

默认情况下,

maven-jaxb2-plugingenerate-sources阶段运行。您可以在generate-resources中解压缩模式。当你尝试编译时,模式还没有出现。

要调试此类问题,请运行mvn -X clean install并检查日志。