0

您好 Gradle 大师!我正在寻找你强大的经验和知识:)

我有一个将 Jacoco 代理连接到 jvm 的 Gradle 插件。目前我的代码如下所示:

Task t = project.allTasks.getByPath(project.getName+":"+"test");
t.jvmArgs = ["-javaagent:"+jacocoAgentJar+"=destfile=" + coverageResultFile.getCanonicalPath()];

这工作正常,但由于不推荐使用动态属性,我想以某种方式摆脱它们。但是...将代码更改为t.ext.jvmArgs = ["-javaagent:"+jacocoAgentJar+"=destfile=" + coverageResultFile.getCanonicalPath()];不起作用。

有人可以向我解释一下我应该如何使用这个动态属性将 Jacoco 代理连接到 jvm?

谢谢

4

3 回答 3

1

您可以直接在构建文件中配置测试任务,添加如下配置闭包:

test{

  jvmArgs "javaagent:"+jacocoAgentJar+"=destfile=" + overageResultFile.getCanonicalPath()"

}
于 2013-03-26T09:38:24.677 回答
1

如果您在此处收到“动态属性”警告,则您的代码可能有问题,而不仅仅是样式问题。一方面,在这里使用getAllTasks(顺便说一下,它采用布尔参数)是不合适的。相反,您应该使用project.tasks.getByName("test"),它可以缩写为project.tasks["test"]甚至project.test。或者,如果您想捕获所有测试任务,project.tasks.withType(Test).

于 2013-03-26T09:31:00.010 回答
0

不是您问题的直接答案,但您可能想查看gradle-jacoco插件。

于 2013-03-26T12:18:45.847 回答