我已经在我的pom.xml文件中配置了Maven JaCoCo插件:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <jacoco.version>0.5.9.201207300726</jacoco.version> </properties> <profiles> <profile> <id>jacoco4</id> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.version}</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> <configuration <destfile>${project.build.directory}/target/jacoco.exec</destfile> <datafile>${project.build.directory}/target/jacoco.exec</datafile> <output>file</output> <append>true</append> </configuration> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles>
我使用的是Windows 7和apache-maven-3.0.4插件。当我从cygwin终端或从命令提示符终端键入mvn -P jacoco4安装时,Maven下载并运行JaCoCo插件,但是jacoco.exec文件似乎没有被创建。以下是错误信息:
[ERROR] Unable to read execution data file C:\Users\brownru\workspace64new\vps9\vps-fileserver\target\jacoco.exec: C:\Users\brownru\workspace64new\vps9\vps-fileserver\target\jacoco.exec (The system cannot find the file specified) java.io.FileNotFoundException: C:\Users\brownru\workspace64new\vps9\vps-fileserver\target\jacoco.exec (The system cannot find the file specified) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:120) at org.jacoco.maven.ReportMojo.loadExecutionData(ReportMojo.java:251) at org.jacoco.maven.ReportMojo.executeReport(ReportMojo.java:228) at org.jacoco.maven.ReportMojo.execute(ReportMojo.java:217) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
无论我是否在配置插件中包含destfile和datafile说明符,都会显示此错误消息:
<destfile>${project.build.directory}/target/jacoco.exec</destfile> <datafile>${project.build.directory}/target/jacoco.exec</datafile>
有人可以告诉我我做错了什么?
我和jacoco和maven有同样的麻烦。
它与父母pom相关,覆盖了okfire的配置。
在这种情况下,该插件没有使用定义代理的参数(用于jvm参数)。
它与父母pom相关,覆盖了okfire的配置。
在这种情况下,该插件没有使用定义代理的参数(用于jvm参数)。
解决方案是将“argLine”配置元素放回来
<plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>${argLine}</argLine> </configuration> </plugin>
完整的插件conf看起来像
<plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> <executions> <execution> <id>unit-test</id> <phase>test</phase> <goals> <goal>test</goal> </goals> <configuration> <skip>${maven.test.skip}</skip> <argLine>${argLine}</argLine> <excludes> <exclude>**/*IntegrationTest.java</exclude> </excludes> </configuration> </execution> <execution> <id>integration-test</id> <phase>integration-test</phase> <goals> <goal>test</goal> </goals> <configuration> <skip>${skipITs}</skip> <argLine>${argLine}</argLine> <includes> <include>**/*IntegrationTest.java</include> </includes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.5.10.201208310627</version> <configuration> <skip>${maven.test.skip}</skip> <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile> <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile> <output>file</output> <append>true</append> </configuration> <executions> <execution> <id>jacoco-initialize</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>jacoco-site</id> <phase>verify</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin>
希望它会有用的