gpt4 book ai didi

jacoco - 将 jacococli.jar 与多个类文件一起使用

转载 作者:行者123 更新时间:2023-12-04 02:00:18 24 4
gpt4 key购买 nike

在大多数情况下,我的类文件位于 tomcat 中的两个位置,分别是 libclasses。现在,一旦创建了 .exec 文件,我需要提取一份报告,其中引用了 classes 位置和 lib 中的一些 jar,为此我使用以下命令

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 选项中的第二个位置/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)

我试过在jar文件之前移动类,异常(exception)是不同的

[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 文件夹中的所有类和 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)

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 命令相比,不需要指定前缀。

关于jacoco - 将 jacococli.jar 与多个类文件一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47717538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com