Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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 Jenkins jacoco插件没有遵守pom.xml中的include_Java_Maven_Jenkins_Junit_Jacoco - Fatal编程技术网

Java Jenkins jacoco插件没有遵守pom.xml中的include

Java Jenkins jacoco插件没有遵守pom.xml中的include,java,maven,jenkins,junit,jacoco,Java,Maven,Jenkins,Junit,Jacoco,我得到了一个pom.xml,大致如下所示: <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.1</version> <configuration> <includes> <include>my/pa

我得到了一个pom.xml,大致如下所示:

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.1</version>
  <configuration>
    <includes>
      <include>my/package/path/**/*</include>
    </includes>
  </configuration>
  <!-- more stuff -->
</plugin>

org.jacoco
jacocomaven插件
0.8.1
我的/包/路径/**/*
当我运行单元测试,然后在笔记本电脑上本地调用
mvnjacoco:report
,一切正常,只包括
my.package.path
中的内容。我的保险率是86%。然而,当我让Jenkins使用相同的命令运行单元测试,然后在我的Jenkins文件中调用
jacoco(execPattern:'target/jacoco.exec')
时,我最终得到了附加到构建的报告中包含的所有代码,因此我的覆盖率最终为2%,因为我没有为一堆第三方库编写测试


如何解决此问题?

您可以排除第三方软件包:

<excludes><!-- Exclude class from test coverage -->
    <exclude>**/*com/3rdparty/path/*</exclude>
</excludes>

**/*com/3rdparty/path/*

我能够通过调用
jacoco
中的
inclusionPattern
参数来解决这个问题:

jacoco(execPattern: 'target/jacoco.exec',inclusionPattern: 'my/package/path/**/*')

这并不能解决问题。如果jenkins没有选择包含模式,为什么它会选择排除模式?有几种方法可以排除包。检查这里的链接,看看是否有任何答案可以解决您的问题:所有这些答案都依赖于maven和pom.xml文件。我的问题与詹金斯似乎没有使用那个文件有关。你回答了你自己的问题。在这种情况下,您可能需要在Jenkins中更改Jacoco配置。