我们有一个使用 clover 和 axistools-wsdl2java 插件的 maven 项目。平台是窗户。
我们正在使用 clover 2.4.0 插件来获取集成在项目 pom.xml 中的代码覆盖率。如下图所示配置了三叶草插件。
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-clover2-plugin</artifactId>
<version>2.4.0</version>
<configuration> <generatePdf>true</generatePdf>
<generateXml>true</generateXml>
<generateHtml>true</generateHtml>
<licenseLocation>C:/EcasSVNCO/ews/ews-mvn/ewsbase/src/test/resources/license/clover.license</licenseLocation>
<reportDescriptor>C:/EcasSVNCO/ews/ews-mvn/ewsbase/src/test/resources/descriptor/default-clover-report.xml</reportDescriptor>
<excludes>
<exclude>${basedir}/src/main/java/*.java</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>instrument</goal>
<goal>clover</goal>
</goals>
</execution>
<!--
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>instrument</goal>
<goal>clover</goal>
</goals>
</execution>
<execution>
<id>site</id>
<phase>pre-site</phase>
<goals>
<goal>instrument</goal>
<goal>clover</goal>
</goals>
</execution>
-->
</executions>
</plugin>
此外,还有一个axistools插件,用于使用wsdl文件生成类,配置如下。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>axistools-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<sourceDirectory>${base.dir}/src/main/resources/wsdl</sourceDirectory>
<outputDirectory>${base.dir}/src/main/java</outputDirectory>
<wsdlFiles>
<wsdlFiles>wsecas.wsdl</wsdlFiles>
</wsdlFiles>
<packageSpace>com.symantec.wsecas</packageSpace>
<testCases>true</testCases>
<serverSide>true</serverSide>
<phase>install</phase>
<subPackageByFileName>true</subPackageByFileName>
</configuration>
<executions>
<execution>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
当我们执行命令 'mvn clean install' 时,编译会正常进行。然后首先运行axistool的wsdl2java目标,并在各自的目录中生成源文件。Next clover 插件尝试通过运行单元测试用例来检测源代码,当此插件将检测的源代码放在 {basedir}/target/clover/src/main/java/... 下时,它会触发“编译”目标进行编译所有的源代码。在编译源代码时,添加了两个源路径,即 {basedir}/src/main/java/... 和 {basedir}/target/clover/src/main/java/... ,它们都有相同的类。当 maven 编译器尝试编译这些源时,编译会因抛出“重复类错误”而失败。
但是当我们注释掉axistools插件时,clover检测和报告生成就很好了。
如果你们中的任何人遇到过类似的问题“重复类错误”,请在这方面指导我们。任何建议和帮助将不胜感激。