【问题标题】:JAXB2-maven only builds in targetJAXB2-maven 仅在目标中构建
【发布时间】:2014-09-08 08:49:10
【问题描述】:

我正在进行我的第一个 Java-Spring 项目。我需要与几个网络服务通信。我提供了一些 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/

在此先感谢

【问题讨论】:

    标签: jaxb wsdl spring-ws


    【解决方案1】:

    maven-jaxb2-pugin 的作者在这里。

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

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

    this part of the docs

    【讨论】:

    • 您好,我正在使用 eclipse mars,但在生成源代码时遇到问题。我正在尝试创建与问题中提到的相同的教程。我如何强制创建它们,因为右键单击项目 -> Maven -> 更新项目没有做任何事情。
    • 在 Eclipse 中检查您的 Maven 控制台。那里一切都好吗?最好问一个问题,在 cmets 中聊天是不行的。
    • 链接失效
    【解决方案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>
    

    【讨论】:

    • 在哪里可以指定所需的 wsdls?和 maven-jaxb2-plugin 一样吗?或者这是一个补充插件?
    • 您应该同时使用这两个插件.. 但要生成 wsdl 类和 API,我使用另一个插件“cxf-codegen-plugin”。 build-helper-maven-plugin 只添加源中目标文件夹下生成的类,以便编译项目。
    • Spring Tools Suite 不将这些文件夹识别为包和类?它们也没有放在我的 src/main/java 文件夹中?
    • 通过这个插件,这些文件夹被识别为包和类。如果您使用 Eclipse,请执行 Maven 更新项目。这些类未放入 src/main,但包含在您的构建中以复制所有类。
    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多