Pertanyaan Bagaimana cara men-debug aplikasi Play menggunakan aktivator?


Saya tahu bahwa untuk kerangka Play klasik itu play debug ~run. Saya mencoba berlari activator debug ~run tapi saya mendapatkan kesalahan berikut:

[error] Not a valid command: debug (similar: idea)
[error] Not a valid project ID: debug
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: debug (similar: debianSign, node)
[error] debug
[error]      ^

Apa yang saya lakukan salah?


30
2017-10-20 04:29


asal


Jawaban:


Jika Anda baru saja melakukannya activator ~run, maka Anda harus dapat melewati opsi port debug JVM dengan:

./activator -jvm-debug <port> ~run

Ini mungkin tidak melakukan hal yang sama dengan permainan-lari, tetapi inilah argumen yang ditambahkan ke baris perintah:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>

Dari: https://github.com/typesafehub/activator/blob/master/dist/src/templates/activator#L107

Saya telah berhasil melekat pada proses ini di IDE saya.

Jika Anda menjalankan di windows, konfigurasi otomatis sedikit berbeda. Dengan aktivator terbaru, Anda dapat melakukan hal berikut:

  1. Buka %UserProfile%\.activator\activatorconfig.txt (The UserProfile berbeda tergantung pada instalasi windows Anda C:\Documents and Settings\jsuereth pada satu instalasi dan C:\Users\jsuereth yang lain). Melewati yang berikut di file: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<PUT YOUR PORT HERE>
  2. Anda dapat mengatur properti JAVA_OPTS pada baris perintah sebelum memulai pengaktif, mis. set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>"

Semoga itu membantu!


58
2018-03-08 18:10



Saya memiliki windows7 dan aktivator 1.2.12, dan jawaban di atas tidak berhasil untuk saya. Sebaliknya, saya menggunakan opsi "-jvm-debug" dari perintah "activator.bat" dari folder rumah proyek, dan itu berhasil. Seperti ini:

C: \ Projects \ MyProject> activator -jvm-debug
Mendengarkan dt_socket transportasi di alamat: 9999
[info] Memuat global plugins dari C: \ Users \ MyAccount \ .sbt \ 0,13 \ plugins
[info] Memuat definisi proyek dari C: \ Projects \ MyProject \ project
[info] Setel proyek saat ini ke MyProject (di file build: / C: / Projects / MyProject /)

Kemudian, di dalam aktivator (sbt), saya menggunakan perintah "jalankan". Seperti ini:

[MyProject] $ run

--- (Menjalankan aplikasi, auto-reload diaktifkan) ---

[info] play - Mendengarkan HTTP on / 0: 0: 0: 0: 0: 0: 0: 0: 9000
'kekuatan' diaktifkan

(Server dimulai, gunakan Ctrl + D untuk berhenti dan kembali ke konsol ...)

Menjalankan tugas "menonton"

Untuk melakukan debug dari gerhana, klik kanan pada proyek dan pilih "Debug As, Debug Configurations". Dalam dialog Debug Configurations, klik kanan pada "Remote Java Application" dan pilih "New". Ubah Port ke 9999 dan klik "Terapkan". Mulai sekarang Anda dapat mengklik "Debug" untuk terhubung ke aplikasi yang sedang berjalan.


4
2017-07-20 09:54



Hal lain yang saya temukan:

fork in run := false

fork in Test := false

di "build.sbt".

Ini memungkinkan Anda untuk mendebug tes Anda, bukan hanya aplikasi itu sendiri.


4
2018-02-20 00:18



Dengan framework Play 2.x:

Di dalam direktori proyek Anda, jalankan perintah aktivator seperti

activator -jvm-debug 9999 dijalankan

Setelah ini selesai, debug proyek Anda sebagai Aplikasi Java Remote dalam IDE Anda untuk menghubungkannya dengan proses aktivator.

Setelah ini selesai, Anda akan dapat memecahkan kode Anda di mana saja. :)


3
2018-04-25 22:53



Saya mencoba solusi Readren tetapi menggunakan edisi komunitas IntelliJ IDEA (jadi tidak ada dukungan Play inbuilt) daripada Eclipse.

Ini pada dasarnya adalah cara didokumentasikan untuk bekerja dengan hal-hal Activator Typesafe baru (saya menggunakan 1.3.2). Bagi saya aplikasi berjalan dan debugger IntelliJ tampak seperti menghubungkan tetapi tidak akan mencapai breakpoint (juga breakpoint di IntelliJ tidak memiliki tanda centang yang menandakan bahwa mereka tidak akan tertabrak).

Saya mencoba mengubah pengaturan DEBUG_OPTS di file activator.bat untuk menggunakan bentuk -agentlib dari argumen baris perintah jdwp dan ini sepertinya memperbaikinya untuk saya.

rem set DEBUG_OPTS=-Xdebug -Xrunjdwp:tnsport=dt_socket,server=y,suspend=n,address=!JPDA_PORT!
set DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999

Mungkin saya harus meletakkan ini di activatorconfig.txt di suatu tempat tetapi menghabiskan sekitar 4 jam mencoba untuk membuatnya bekerja - jadi itu cukup baik untuk saya sekarang ...

Saya menggunakan JVM berikut jika ini penting:

versi java "1.7.0_75" Java (TM) SE Runtime Environment (build 1.7.0_75-b13) Java HotSpot (TM) Server 64-Bit VM (build 24.75-b04, mode campuran)


0