jacococli.jar 与多个类文件的用法

Usage of jacococli.jar with multiple classfiles

在大多数情况下,我的 class 文件位于 tomcat 内的两个位置,即 libclasses。现在,一旦创建了 .exec 文件,我需要提取一份报告,引用两个位置 classeslib 中的一些罐子,为此我使用以下命令

java -jar jacococli.jar report /local/jacoco.exec --html /jacocoReport/html --name MergeCode --classfiles /tomcat/webapps/<app>/WEB-INF/lib/new.jar /tomcat/webapps/<app>/WEB-INF/classes

但它正在抛出错误,从错误来看,它似乎正在考虑将 --classfiles 选项中的第二个 location/jar 作为 exec 文件。

[INFO] Loading execution data file /local/jacoco.exec.
[INFO] Loading execution data file /tomcat/webapps/<app>/WEB-INF/classes.
Exception in thread "main" java.io.FileNotFoundException: /tomcat/webapps/<app>/WEB-INF/classes (Is a directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at org.jacoco.cli.internal.core.tools.ExecFileLoader.load(ExecFileLoader.java:71)
at org.jacoco.cli.internal.commands.Report.loadExecutionData(Report.java:98)
at org.jacoco.cli.internal.commands.Report.execute(Report.java:82)
at org.jacoco.cli.internal.Main.execute(Main.java:89)
at org.jacoco.cli.internal.Main.main(Main.java:104)

我试过将classes移到jar文件之前,异常情况不同

[INFO] Loading execution data file /local/jacoco.exec.
[INFO] Loading execution data file /tomcat/webapps/<app>/WEB-INF/lib/new.jar.
Exception in thread "main" java.io.IOException: Invalid execution data file.
at org.jacoco.cli.internal.core.data.ExecutionDataReader.read(ExecutionDataReader.java:89)
at org.jacoco.cli.internal.core.tools.ExecFileLoader.load(ExecFileLoader.java:59)
at org.jacoco.cli.internal.core.tools.ExecFileLoader.load(ExecFileLoader.java:73)
at org.jacoco.cli.internal.commands.Report.loadExecutionData(Report.java:98)
at org.jacoco.cli.internal.commands.Report.execute(Report.java:82)
at org.jacoco.cli.internal.Main.execute(Main.java:89)
at org.jacoco.cli.internal.Main.main(Main.java:104)

java -jar jacococli.jar classinfo /tomcat/webapps/<app>/WEB-INF/lib/new.jar /tomcat/webapps/<app>/WEB-INF/classes /tomcat/webapps/<app>/WEB-INF/lib/new1.jar

多个文件工作正常 classes 文件夹中的所有 classes 和 lib 文件夹中的一组 jar 文件都已列出,

http://www.jacoco.org/jacoco/trunk/doc/cli.html 的文档指出 --classfiles 报告可以有多个文件,但没有说明示例或分隔符。我尝试使用逗号、分号,但它不起作用 ' '[space] 与 classinfo 一起使用,所以我假设它也应该与 report 一起使用。

谷歌搜索也没有得到 jacococli.jar.

的任何示例

Documentation at http://www.jacoco.org/jacoco/trunk/doc/cli.html states that --classfiles for report can have multiple files

这是错误的 - http://www.jacoco.org/jacoco/trunk/doc/cli.html 上的文档实际上指出

Some parameters can be specified multiple times to provide multiple values.

--classfiles <path>

可以按字面意思指定多次,即

--classfiles path1 --classfiles path2

当您省略前缀 --classfiles 时,它将被解释为

<execfiles>

给予例外

Exception in thread "main" java.io.FileNotFoundException: /tomcat/webapps/<app>/WEB-INF/classes (Is a directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at org.jacoco.cli.internal.core.tools.ExecFileLoader.load(ExecFileLoader.java:71)

Exception in thread "main" java.io.IOException: Invalid execution data file.
at org.jacoco.cli.internal.core.data.ExecutionDataReader.read(ExecutionDataReader.java:89)
at org.jacoco.cli.internal.core.tools.ExecFileLoader.load(ExecFileLoader.java:59)

如预期 - 在一种情况下它不是文件,在另一种情况下它不是有效的 exec 文件。

' '[space] works with classinfo so I am assuming it should work with report also

reportclassinfo 是两个不同的命令,具有不同的参数和所有结果。 Space 与 classinfo 命令一起使用,因为它允许

的多个规范
<classlocations>

注意与 report 命令相比不需要指定前缀。