繁体   English   中英

axistools-maven-plugin 未从 WSDL 生成源

[英]axistools-maven-plugin not generating source from WSDL

我正在使用 Apache 轴从我的 WSDL 文件中生成 java 源。 maven 运行成功,没有任何错误,但没有生成类。

问题:我在这里缺少什么?

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>axistools-maven-plugin</artifactId>
        <version>1.4</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>wsdl2java</goal>
                </goals>
                <configuration>
                    <sourceDirectory>/src/main/resources</sourceDirectory>
                    <outputDirectory>/src/main/java</outputDirectory>
                    <wsdlFiles>
                        <wsdlFile>thesourcewsdlfile.wsdl</wsdlFile>
                    </wsdlFiles>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

我显然不确定这个配置有什么问题。

尝试在maven项目上定义源和输出目录库,也就是说,使用标准maven属性在运行时指向正确的绝对路径,更改配置如下:

 <sourceDirectory>${basedir}/src/main/resources</sourceDirectory>
 <outputDirectory>${basedir}/src/main/java</outputDirectory>

基于此配置, thesourcewsdlfile.wsdl应该位于src/main/resources/thesourcewsdlfile.wsdl

因此,完整的插件配置应该是:

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>axistools-maven-plugin</artifactId>
        <version>1.4</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>wsdl2java</goal>
                </goals>
                <configuration>
                    <sourceDirectory>${basedir}/src/main/resources</sourceDirectory>
                    <outputDirectory>${basedir}/src/main/java</outputDirectory>
                    <wsdlFiles>
                        <wsdlFile>thesourcewsdlfile.wsdl</wsdlFile>
                    </wsdlFiles>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

此外,必须将以下依赖项添加到项目中:

<dependencies>
    <dependency>
        <groupId>org.apache.axis</groupId>
        <artifactId>axis</artifactId>
        <version>1.4</version>
    </dependency>
    <dependency>
        <groupId>javax.xml</groupId>
        <artifactId>jaxrpc-api</artifactId>
        <version>1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.1</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1</version>
    </dependency>
</dependencies>

总的来说,将生成的源放在target目录下要好得多,因为它们是自动生成的,不应该添加到正在使用的版本控件中。 然后,标准位置将是${project.build.directory}/generated-sources下的任何所需(有意义的)目录(其中${project.build.directory}确实是指向target目录的标准属性)。

恕我直言,您缺少resources下的wsdl文件夹,只需添加并运行:

mvn clean generate-sources

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM