【问题标题】:maven cobertura generated-classesmaven cobertura 生成类
【发布时间】:2010-11-03 21:08:44
【问题描述】:

我正在使用 maven cobertura 插件生成覆盖率报告,但由于某种原因,仪器目标陷入了无限循环。

在我的类目录(名为 bin)中,会发生无限循环并创建目录 named generated-classes/cobertura/generated-classes/cobertura...只要我让仪器目标运行,就会一直如此。在每个 cobertura 目录中都是我的检测类。知道为什么会发生这种情况吗?

【问题讨论】:

    标签: maven-2 cobertura


    【解决方案1】:

    你能发布你的 pom 文件吗?或者至少是相关部分?您应该有如下内容:

    <build>
        <pluginManagement>
            <plugins>
    ...snip...              
                <!-- cobertura code coverage plugin -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>cobertura-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <formats>
                            <format>xml</format>
                        </formats>
                    </configuration>
                </plugin>
                <!-- end cobertura code coverage plugin -->
    
            </plugins>
        </pluginManagement>
    </build>
    
    <reporting>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <formats>
                    <format>xml</format>
                </formats>
            </configuration>
        </plugin>
    </plugins>
    </reporting>
    

    另外,您的源代码是否遵循标准的 Maven 目录布局?你的 pom 文件相对于你的源文件在哪里,你的目录布局是什么样的?

    【讨论】:

    • 嗨。我的 POM 部分看起来像你的。 maven 运行 cobertura 任务,但它挂在 cobertura:instrument 上。我的目录结构不是标准的 Maven 布局,尤其是我的输出目录(它是 bin 而不是 classes)。我需要在 cobertura 的某个地方指定吗?
    • 我认为问题在于我的默认输出目录只是 bin,而不是 target/bin(或某个二级目录)。该插件陷入递归循环,因为它将其生成的类目录与我的实际检测类放在同一级别。我必须更新它,看看它是否能解决问题。
    • 虽然不是必需的,但我绝对建议您根据 maven 规范设置您的项目:maven.apache.org/guides/introduction/… - 我意识到这可能不适用于每个项目,但这是需要考虑的事情。当我第一次尝试使用 maven 时,我也被挂断了,因为我认为我的目录组织更直观,但是一旦你跳入“约定优于配置”的想法,一切都只是 作品。我会四处寻找,看看还能找到什么。
    • 感谢您的帮助。我们公司对其目录结构有一个标准。我可以很容易地配置 POM 来使用它。无论如何,一旦我在输出目录中创建了一个额外的层(所以 target/bin 而不是 bin),cobertura 就开始工作了。再次感谢。
    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2011-07-10
    • 2010-10-10
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多