2014-04-28 20 views
16

Tôi muốn hoàn thành chạy tương đương nàyLàm cách nào tôi có thể bật gỡ lỗi từ xa cho SBT trong cửa sổ?

sbt -jvm-debug 5005 

Tuy nhiên tôi dường như không thể vượt qua trong args trong Windows. Đây là những gì tôi đang thấy

>sbt -jvm-debug 5005 
[info] Loading project definition from [myProject] 
[info] Set current project to [myProject] (in build file myProject) 
[error] Expected letter 
[error] Expected symbol 
[error] Expected '!' 
[error] Expected '+' 
[error] Expected '++' 
[error] Expected ';' 
[error] Expected end of input. 
[error] Expected 'show' 
[error] Expected '*' 
[error] Expected '{' 
[error] Expected project ID 
[error] Expected configuration 
[error] Expected key 
[error] 5005 
[error]^
[error] Not a valid command: jvm-debug 
[error] Not a valid project ID: jvm-debug 
[error] Expected ':' (if selecting a configuration) 
[error] Not a valid key: jvm-debug 
[error] jvm-debug 
[error]  ^     

Tôi muốn có thể gỡ lỗi từ xa ứng dụng này từ Intellij. Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời!

+0

đâu vỏ SBT đến từ đâu? Làm thế nào mà bạn cài đặt nó? Có vẻ như bạn đang sử dụng hai tập lệnh khởi chạy sbt khác nhau. Để xác minh, hãy chạy 'sbt about' với cả hai và dán đầu ra. –

Trả lời

9

Dường như phiên bản Windows của SBT không xác định chức năng này.

Trên Linux nó được định nghĩa trong $SBT_HOME/sbt/bin/sbt-launch-lib.bash như

addDebugger() { 
    addJava "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$1" 
} 

Bạn có thể đạt được kết quả tương tự bằng cách thiết lập các biến môi trường SBT_OPTS trên Windows.

Run SBT như thế này, để làm cho debugger lắng nghe trên cổng 5005

set SBT_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" && sbt 
+0

"&& sbt" ở cuối dòng có nghĩa là gì? dường như không phải là một lựa chọn hợp lệ đối với tôi. –

+1

Trên Linux, nó thực thi lệnh thứ hai (sbt trong trường hợp này) nếu lệnh đầu tiên thành công. Có lẽ trong thực tế này doesent làm việc trên Windows (tôi không nhớ, và tôi không thể kiểm tra bây giờ). Tuy nhiên, chỉ cần bỏ qua && và eexecute set và sbt là hai lệnh riêng biệt. Lân lượt tưng ngươi một. – lpiepiora

9
set SBT_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 
sbt run 

được các giải pháp làm việc chỉ có trên Windows 7.

Các vấn đề liên quan