JAXB2-maven仅构建目标

时间:2014-09-08 08:49:10

标签: jaxb wsdl spring-ws

我正在进行我的第一个Java-Spring项目。我需要与几个Web服务进行通信。我提供了一些WSDL,所以我使用Jax2B来自动生成类。

<plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.9.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <schemaLanguage>WSDL</schemaLanguage>
                    <generatePackage>hello.wsdl</generatePackage>
                    <forceRegenerate>true</forceRegenerate>
                    <schemas>
                        <schema>
                            <url>http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl</url>
                        </schema>
                    </schemas>

                </configuration>
</plugin>

我的项目是一个网络项目。这里的问题是,我的类是在目标文件夹中生成的,而不是在我的项目中生成的。有人有想法如何解决这个问题?正确生成类,但不在正确的目录中生成。如您所见,我现在正在使用测试wsdl和模型名称。我遵循了本教程:http://spring.io/guides/gs/consuming-web-service/

非常感谢提前

2 个答案:

答案 0 :(得分:7)

此处maven-jaxb2-pugin的作者。

target/generated-sources/xjc是正确的目录。这就是在Maven构建中处理生成代码的方式,您永远不会在src/main/java生成任何内容。

maven-jaxb2-plugin还将此目录添加到Maven的sources目录中。您只需确保IDE将此目录视为源目录。在Eclipse中,m2eclipse插件会在您执行“更新项目”时自动执行此操作。

请参阅this part of the docs

答案 1 :(得分:2)

我使用此插件将生成的类添加到源....

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>target/generated-sources/xjc</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>