当前位置: 首页 > 知识库问答 >
问题:

当axistools和clover插件都包含在maven项目中时,出现重复的类错误

郑嘉年
2023-03-14

我们有一个使用三叶草和axistools-wsdl2java插件的maven项目。Platfrom是windows。

我们使用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清洁安装”时,编译将正常进行。然后首先运行axistool的wsdl2java目标并在各自的目录中生成源文件。下一个三叶草插件尝试通过运行单元测试用例来检测源代码,当此插件将检测的源代码放在{base dir}/Target/Clover/src/main/java/...然后它触发“编译”目标来编译所有源代码。在编译源代码时,添加了两条源路径,即{base dir}/src/main/java/...和{base dir}/Target/clover/src/main/java/...,两者都有相同的类。当maven编译器尝试编译这些源时,编译失败,抛出“重复类错误”。

但是当我们注释出axistools插件时,三叶草仪器和报告生成都很好。

如果你们中的任何人遇到类似的问题“重复类错误”,请在这方面指导我们。任何建议和帮助将不胜感激。

共有1个答案

金承嗣
2023-03-14

似乎问题在于您的Axis插件生成src / main / java的源代码(它应该是目标/ src生成的)。

当Clover被调用时,它将首先从src/main/java中获取“正常”的源代码,对它们进行检测,然后放入target/clover/java中。接下来Clover将改变源根列表,用target/clover/java替换src/main/java。

接下来,AXIS代码生成开始发挥作用,它再次在src/main/java中生成新的源代码,并将此目录添加为额外的源代码根目录。

因此,编译器在两个位置看到同一组源代码(即未生成的源代码),并对此进行投诉。

这种情况与Clover知识库中描述的情况非常相似:

使用Clover和JAXB或JAXB2插件https://confluence.atlassian.com/display/CLOVERKB/Duplicate类错误

Clover和jaxws-maven插件的https://confluence.atlassian.com/display/CLOVERKB/Duplicate类错误

您将在这些文章中找到可能的解决方案。

 类似资料:
  • 谢谢! 我的build.gradle看起来如下(不包括一般的其他东西)... 依赖项{compile fileTree(include:['*.jar'],dir:'libs')} 错误:类org.apache.xmlbeans.xml.Stream.Location已添加到输出中。请删除重复的副本。编译器不以现代.class文件格式为目标。推荐的(org.apache.log4j.chainsa

  • 创建一个新的android项目后,Eclipse会自动创建一个“appcompat_v7”项目,在/src下没有任何文件。但它显示了样式错误。下一行是styles.xml中的第18行。 样式名称=“Widget.MediaRouter.MediaRouteButton” 父=“Widget.AppCompat.ActionButton” 我不知道Eclipse如何或为什么创建这个项目。 我是And

  • 无法计算生成计划:Plugin org.apache.maven。plugins:maven-resources-plugin:2.5或其一个依赖项无法解析:读取org.apache.maven的项目描述符失败。plugins:maven-resources-plugin:jar:2.5 pluginorg.apache.maven。plugins:maven-resources-plugin:2

  • 我正试图创建我的第一个“Hello World”Scala项目,使用Maven作为构建工具,IntelliJ作为我的IDE。在运行mvn包时,我不断遇到以下错误。 以下是完整的错误:未能执行目标组织。scala工具:maven scala插件:2.15.2:compile(默认)on project couchbase-test-3:wrap:org。阿帕奇。平民执行董事。ExecuteExcep

  • 我正在使用eclipse、m2eclipse插件和maven创建一个新的maven项目,遵循以下步骤,http://o7planning.org/en/10101/install-maven-into-eclipse 但是,当创建一个新的maven项目时,没有JRE系统库,也没有maven库。只有如下所示的src、target和pom.xml。这正常吗?如果没有,我该如何避免呢?谢谢! 单击以获取