WSDL2Code(Maven)自动生成损坏的类(包)

5 axis2 maven-2 wsdl2code

我目前正在使用Axis2替换IBM WebService框架.从WSDL文件生成代码时,我使用Maven插件WSDL2Code.但是,创建的代码总是错误的.或者更确切地说,包名称总是错误的,这反过来使得每个方法都被称为不可调用(在eclipse中创建更多错误,高达10.000+错误).

这是一个实际发生的例子(这只是我专门为获得建议而做的一个例子):

      <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
            <version>1.4.1</version>
            <executions>
                <execution>
                    <id>Test</id>
                    <goals>
                        <goal>wsdl2code</goal>
                    </goals>
                    <configuration>
                        <packageName>test.testpackage</packageName>
                        <databindingName>xmlbeans</databindingName>
                        <wsdlFile>${basedir}/wsdl/service.wsdl</wsdlFile>
                        <outputDirectory>${basedir}/testdirectory</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

理论上,这应该在testdirectory/test/testpackage目录中生成包名为"test.testpackage"的代码.但是,它会在testdirectory.src.test.testpackage目录中创建以下包:Src.test.testpackage.它总是在包名和目录中添加"src" - 如果我将包名更改为src.test.testpackage,它将生成以下包:src.src.test.testpackage.

当然,这会导致一个巨大的问题,因为每个生成的文件都有以下错误:"声明的包"src.test.testpackage"与预期的包"src.src.test.testpackage"不匹配"

我在这里完全失败了.我根本找不到任何理由为什么它应该在任何地方添加"src".我注意到一个自动生成的build.xml文件,其中包含一个名为sourcedirectory = x/src(或类似的东西)的值,但我无法做任何事情来影响这个值(尝试更改它然后保存文件没有区别很明显,因为它是在我下次运行maven时再次生成的.

哦,我通常使用命令"mvn clean install"和WSDL2Code的1.4.1版本,因此它不是旧的wsdl2code:wsdl2code错误之一.

如果有人知道这里究竟出了什么问题,我会非常感激.

提前致谢.

小智 9

版本1.4.1还有一些未真正记录的配置选项(请查看org.apache.axis2.maven2.wsdl2code.WSDL2CodeMojo的源代码)...

只需使用<flattenFiles> true </ flattenFiles> - 这应该可以解决您的问题:-)


lep*_*pie 0

也许 'src' 是 ${basedir} 的一部分?