2015-12-14 39 views
5

我試圖在調試模式下運行一個任務,並讓它在斷點處停止,但似乎沒有工作。該任務將正常執行,但IDE給我一個套接字錯誤:在IntelliJ中調試gradle任務

Error running MyProject [myTask]: Unable to open debugger port (127.0.0.1:52550): java.net.SocketException

注意,端口它試圖對每一個試圖利用變化。我想在任務配置中添加一些東西到VM Options:,但我不知道是什麼。

+0

這對你有幫助嗎? http://stackoverflow.com/questions/17179886/using-intellij-to-set-breakpoints-in-gradle-project – Dropout

+0

不,我是新來的gradle/groovy,我不確定如何實現提供解決方案我是否必須申報一個名爲'run'的新任務?例如,我嘗試添加'run {debug true}',但它給了我一個例外'Could not find method run()...' – Konstantine

+0

由於您使用的是IntelliJ,因此這裏的問題中的說明可能會幫助您:http ://stackoverflow.com/questions/33816953/how-to-debug-play-2-application-built-with-gradle - 注意你不能真正調試build.gradle文件。 –

回答

1

我有一個類似的問題,但我甚至無法使用gradle構建,因爲它會給我「無法打開調試器端口(127.0.0.1:xxxxx):」何時到達某個子項目

我發現的是char char degreeSymbol = '°';中使用的特殊字符,它導致某些內容崩潰,這就是爲什麼它無法打開調試器端口。

驗證文件夾下有一個名爲「test」的gradle任務,它將查找此問題並向您顯示其確切位置。

在IntelliJ社區版2016.2中,您可以通過轉到視圖>工具窗口> Gradle找到它。然後展開項目名稱(root)>任務>驗證。

要解決此問題要麼改變特殊字符爲Unicode字符串final String DEGREE = "\u00b0"; 或在你的根gradle.build做:

apply plugin: 'java' 
compileJava { options.encoding = "UTF-8" } 

,或者如果你有多個子項目:

allprojects { 
    apply plugin: 'java' 
    compileJava { options.encoding = "UTF-8" } 
} 
0

創建一個新的運行配置。選擇'Application'作爲配置類型(即不是'Gradle')。 然後選擇要運行的主類。 IntelliJ將像往常一樣首先運行gradle,然後以調試模式運行所選的類。我不確定是否有任何限制,因爲我自己找到了這個解決方案。