2013-03-26 26 views
0

你好,Gradle大師! 我正在尋求你的強大經驗和知識:)Gradle插件,如何將Jacoco代理掛接到jvm

我有一個Gracade插件,將Jacoco代理掛鉤到jvm。目前我的代碼看起來是這樣的:

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上?

感謝

+0

嘗試使用'tasks.withType(Test){..}'以便它不是通用任務類型的動態屬性。 – 2013-03-26 09:18:59

回答

1

如果你得到一個「動態性」在這裏警告,有可能出錯了的代碼,它不只是一個風格問題。首先,使用getAllTasks(順便說一下,這是一個布爾參數)在這裏不合適。相反,您應該使用project.tasks.getByName("test"),它可以縮寫爲project.tasks["test"]或甚至project.test。或者,如果你想抓住所有的測試任務,project.tasks.withType(Test)

1

您可以在構建文件中添加配置封這樣的直接配置測試任務:

test{ 

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

} 
相關問題