Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven+;Cobertura:无法定位[您的类]。您指定了源目录了吗?_Java_Maven_Cobertura - Fatal编程技术网

Java Maven+;Cobertura:无法定位[您的类]。您指定了源目录了吗?

Java Maven+;Cobertura:无法定位[您的类]。您指定了源目录了吗?,java,maven,cobertura,Java,Maven,Cobertura,我有一个“MyMath”类,有两个简单的方法:“multi”和“add”。 和只测试多种方法的测试类 public class MainTest { @Test public void testMultiply() { MyMath tester = new MyMath(); // check if multiply(10,5) returns 50 assertEquals("10 x 5 must be 50", 50, te

我有一个“MyMath”类,有两个简单的方法:“multi”和“add”。 和只测试多种方法的测试类

public class MainTest {

    @Test
    public void testMultiply() {

       MyMath tester = new MyMath();

       // check if multiply(10,5) returns 50
       assertEquals("10 x 5 must be 50", 50, tester.multi(10, 5));
     } 
}
我的项目结构是:

JenkinsTest/
 src/
  main/Main.java
  math/MyMath.java
  test/MathTest.java
以及项目根目录下的pom.xml。 我正在尝试使用cobertura maven插件生成覆盖率报告

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <formats>
           <format>html</format>
           <format>xml</format>
          </formats>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>clean</goal>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
    </plugin>
  </plugins>
</build>  

<dependencies>
  <dependency>
    <groupId>junit</groupId>
      <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
  </dependency>
</dependencies>

org.codehaus.mojo
cobertura maven插件
2.6
html
xml
清洁的
检查
朱尼特
朱尼特
4.8.1
测试
并从命令行运行maven
maven-cobertura:cobertura

它说1个测试运行,Cobertura报告生成成功,生成成功消息。但当我检查target/site/cobertura/index.html时,它说“MyMath”类有100%的行覆盖率(即使没有执行“add”方法)。当我单击“MyMath”链接时,它会显示“找不到math/MyMath.java。您指定了源目录了吗?”。我是Maven和cobertura的新手。请有人指导我正确显示覆盖结果和“无法定位”问题。多谢各位


PS:我将项目结构更改为Maven标准目录布局@drembert advice,它可以作为例外工作。但是,当我单击类名时,仍然存在错误:“找不到main/java/MyMath.java。是否指定了源目录?”在文件夹结构中,我注意到的一点是,您没有遵循标准的Maven项目结构()。例如,MyMath.java应该在src/main/java文件夹中,最好在这个路径后面有额外的文件夹来表示包名。现在覆盖率显示正确的结果。错误消息更改为“找不到main/java/MyMath.java。是否指定了源目录?”。POM文件中是否有maven源插件?@KeerthiRamanathan否我没有。我在谷歌上搜索了一下,发现它生成了源文件的jar存档。我需要添加吗,先生?请添加,先生,并让我知道。