2015-02-10 117 views
28

有沒有一種工具可以讓我在build.gradle文件中設置斷點並逐步完成調試器中的任務?如何調試Gradle build.gradle文件(在調試器中,帶有斷點)?

注意:我相信我提出的問題與關於調試Gradle插件的類似的stackoverflow問題不同,其中(大概)意圖是通過位於單獨文件中的定製Groovy或Java插件代碼。我想設置在搖籃任務斷點在一個簡單的build.gradle文件,就像...

task example { 
    println "I want to set a breakpoint here" 
} 

...所以,當我跑gradle example我可以檢查在調試器的上下文。 (對於那些將我指向IntelliJ的人......雖然JetBrains的網站宣稱他們支持在IDEA UI中調試Gradle腳本,但AFAICT這是不真實的,因爲這被報告在IDEA13 EAP中破壞並且尚未修復在IDEA14中,請參閱Debugging Gradle build files in Intellij/Android Studio

是否有任何調試工具允許我在build.gradle文件中設置斷點,或者是否存在有關Gradle DSL的某些內容,使得從根本上無法在任務中設置斷點我的例子,上面?

+1

我懷疑你可以從Android Studio中調試,但你可以調用的println並觀察語句中的消息一節。 – j2emanue 2015-07-10 22:12:15

回答

8

Personnaly我這樣做,當我需要調試構建腳本:

裏面你終端不同

export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" 

然後運行構建

gradle clean install 

最後把一些斷點,並啓動遠程在端口5005的IDE中調試配置,你很好!

+0

當我嘗試這個時,android studio會告訴我以下錯誤:無法打開調試器端口(localhost:5005):java.net。ConnectException「連接被拒絕」 – j2emanue 2015-09-05 00:10:17

+0

當您運行gradle乾淨安裝時,構建是否停止在 「偵聽傳輸dt_socket的地址:5005」 – 2015-09-09 08:21:47

+1

OP詢問「是否有任何調試工具允許我在build.gradle中設置斷點文件「,那麼你可以擴展」放置一些斷點「嗎? – Noumenon 2015-09-19 21:44:22

8

有更簡單的方法:

只需添加在您的COMAND行-Dorg.gradle.debug =真

例如: gradle nameOfTask -Dorg.gradle.debug=true

,那麼你應該開始你的IDE和運行遠程調試與本地端口5005,所有。

搖籃正在等待你的,因爲標準的選項服務器= Y

org.gradle.debug

設置爲true時,搖籃將運行啓用遠程調試構建,監聽端口5005 。注意,這相當於在JVM命令行中添加-agentlib:jdwp = transport = dt_socket,server = y,suspend = y,address = 5005,並掛起虛擬機,直到連接調試器。

Link to docs

+0

https://docs.gradle.org/current/userguide/build_environment.html上的文檔和https://github.com/gradle/上的代碼gradle/blob/master/subprojects/core/src/main/java/org/gradle/process/internal/JvmOptions.java#L143表明是的,這基本上等同於@ baptiste-mesta提供的答案。 – Mickalot 2016-10-04 17:40:00

+0

我的gradle構建不會停止並等待調試器連接? – themathmagician 2016-12-22 01:58:53

+0

gradle應該停下來等待調試器,你能告訴我cmd嗎? – user1722245 2016-12-27 18:40:12

相關問題