Plugin Debugging

Ketika bug di plugin ini kode yang sulit untuk menentukan, kamu bosan mengkompilasi ulang setelah setiap perubahan yang keluaran logger mengacaukan kode dari kamu, debugging ini bisa sangat membosankan. Oleh karna itu, bagian ini akan menjelaskan bagaimana cara untuk mengatur plugin anda untuk memanfaatkan Java's kemampuan debugging.

Mempersiapkan ruang kerja Anda

Karena kita akan berjalan baik Spons dan plugin kamu dari dalam IDE, kamu akan perlu untuk mengimpor baik SpongeForge atau SpongeVanilla, tergantung mana yang ingin kamu gunakan, sebagai sebuah proyek ke dalam bagian kerja kamu. Petunjuk untuk melakukannya ditemukan di halaman GitHub proyek masing-masing. Ikuti petunjuk dengan hati-hati sebelum melanjutkan di sini.

Sekarang kamu perlu memastikan proyek plugin kamu terlihat oleh SpongeForge/SpongeVanilla proyek yang baru saja kamu lakukan. Langkah-langkah yang diperlukan tergantung pada IDE kamu.

Intellij IDEA

Di IntelliJ, setiap proyek punya suatu workspace(s). Untuk membuat proyek kamu terlihat oleh Sponge(Vanilla) proyek, itu perlu Module. Dengan asumsi kamu sudah membuat proyek kamu seperti yang dijelaskan di dalam Menyiapkan IntelliJ IDEA, impor itu menggunakan langkah-langkah berikut.

  • Buka SpongeVanilla/SpongeForge proyek.
  • Klik Menyimpan, diikuti oleh Baru, kemudian Modul dari sumber-Sumber yang Ada....
  • Arahkan ke direktori proyek plugin Anda.
    • Jika kamu menggunakan Gradle, pilih build.gradle file, dalam dialog berikutnya cek Gunakan auto-impor dan confirmasi.
    • Dalam keadaan lain, hanya pilih keseluruhan direktori dan klik Selesai.
  • Klik Selesai.

Tip

Jika kamu belum membuat plugin kamu, klik Modul... sebagai pengganti Modul dari sumber-Sumber yang Ada..., kemudian buat proyek kamu dalam dialog berikut.

Gerhana

Cuma membuat proyek kamu seperti yang dijelaskan di sini: Menyediakan eclipse. Selama ini di ruang kerja kamu SpongeVanilla/SpongeForge proyek, itu akan terlihat.

Menambahkan Plugin ke Sponge classpath

Gagasan di balik ini adalah bahwa kita akan meluncurkan Sponge dari dalam IDE Anda, seperti biasa. Namun, bedanya adalah kita akan menambahkan plugin anda ke classpath. Karena Sponge akan sesuai dengan semua plugin bawaan yang ditemukan di classpath, menambahkan proyek plugin ke classpath Sponge akan menyingkirkan kebutuhan Anda untuk membangun kembali dan menyalin file artefak ke dalam direktori server Anda setelah setiap perubahan.

Pertama-tama anda harus memastikan bahwa anda menjalankan Run/Debug konfigurasi (s) dengan tepat, seperti yang ditunjukkan dalam Sponge README.md

Kemudian Anda perlu mengedit Konfigurasi Run / Debug sehingga akan menyertakan proyek Anda di jalur kelas. Cara melakukan ini, tergantung IDE Anda lagi:

Intellij IDEA

  • Buka Struktur Proyek Anda.
    • Klik File, diikuti oleh Proyek struktur....
    • ATAU, klik, lambang,``struktur proyek``, di sudut kanan atas sebelah kanan dari IDE, kemudian `` Cari`` lambang.
  • Klik Modul. Memperluas SpongeForge atau SpongeVanilla kelompok (tergantung apa yang anda pilih).
  • Pastikan SpongeForge_main atau SpongeVanilla_main di pilih.
  • Di kolom sebelah kanan, pilih Dependensi tab.
  • Klik + lambang (Add) di bagian bawah kolom, dan pilih Modul Ketergantungan.
  • Pilih yourplugin_main.
  • JANGAN memeriksa pilihan Export pada modul, apabila itu ditambahkan ke daftar.

Gerhana

  • Temukan Konfigurasi Run / Debug Anda
    • Klik Menjalankan, diteruskan dengan Menjalankan Konfigurasi...
    • ATAU, klik tanda panah drop-down di sebelah tanda Run/Debug dan kemudian Menjalankan Konfigurasi... atau Debug Konfigurasi..., masing-masing.
  • Pilih Run / Debug Configuration untuk Sponge (Server) di sisi kiri.
  • Beralih ke Classpath tab.
  • Pilih Pengguna, diteruskan dengan Menambahkan Proyek... tombol.
  • Pilih Proyek yang cocok untuk Plugin kamu.
  • Klik tombol OK.
  • Klik tombol Pasangkan pada sudut bawah sebelah kanan.

Menjalankan Konfigurasi

Setelah mengikuti langkah sebelumnya, Anda harus siap untuk memulai debugging. Jika Anda memulai server Anda dari IDE Anda, direktori kerjanya akan menjadi direktori `` run`` di proyek SpongeForge / SpongeVanilla Anda. Semua file yang biasanya dibuat oleh server (worlds, configs etc) akan disimpan di direktori `` run`` dan bertahan selama beberapa putaran dari server tes lokal Anda, sama seperti jika Anda menyalin server secara manual .jar ke `` jalankan`` dan mulai dari sana.

Intellij IDEA

Daripada menekan panah kanan kanan untuk menjalankan konfigurasi Run / Debug Anda, klik ikon Hijau di sebelah kanannya, `` Debug``.

Gerhana

Daripada menekan panah kanan kanan untuk menjalankan konfigurasi Run / Debug Anda, klik panah drop-down ikon Debug (yang menampilkan bug) dan klik konfigurasi `` Test (Server) `` Anda. Jika tidak muncul di menu drop-down, klik `` Debug Configurations``. Pilih konfigurasi `` Test (Server) `` dan tekan tombol `` Debug`` di kiri bawah.

Menggunakan Debugger

Setelah server Anda (dan Plugin Anda) berjalan di Debugger, Anda dapat menggunakan fitur yang dipegangnya. Yang paling menonjol digunakan dijelaskan di bawah ini singkatnya, meski bukan fitur Sponge, tapi Java Debugger yang digunakan IDE Anda.

Breakpoints

Breakpoints adalah alat yang berguna untuk melihat lebih dekat kode. Sebuah breakpoint dapat diatur pada awal baris kode atau fungsi. Saat mencapai breakpoint, debugger akan menghentikan eksekusi kode dan IDE Anda akan membuka pandangan yang memungkinkan Anda untuk memeriksa isi semua variabel dalam lingkup saat ini. Eksekusi kode tidak akan dilanjutkan kecuali Anda menekan tombol yang sesuai pada tampilan debugging IDE Anda.

Breakpoints juga dapat ditambahkan, dihapus atau dinonaktifkan sementara saat proses debug sedang dalam proses.

Tip

Setelah suatu server centang mengambil lebih dari jumlah waktu yang diberikan, pengawas akan mempertimbangkan server jatuh dan tegas menutupnya. Ketika bekerja dengan breakpoints ini mungkin terjadi, jadi dianjurkan bahwa anda mengubah test lingkungan``server.properties`` file dan mengubah nilai max-tick-time untuk jumlah yang sangat besar (jumlah milidetik kutu dapat mengambil) atau -1 (untuk menonaktifkan Pengawas yang benar).

Intellij IDEA

Untuk menambahkan atau menghapus breakpoint, cukup klik kiri di ruang kosong hanya di sebelah kiri editor Anda.

Selain itu, mepunyai kursor di mana anda ingin menambahkan breakpoint bisa juga dihapus terus klik Run diteruskan dengan Toggle Line Breakpoint.

Gerhana

Cara menambahkan atau menghapus breakpoint, cukup klik sebelah kanan di ruang kosong hanya ke sebelah kiri dari editor anda dan klik Toggle Breakpoint.

Selain itu, mempunyai kursor di mana kamu ingin menambahkan breakpoint atau menghapusnya lalu klik Run diteruskan dengan Toggle Breakpoint.

Kode Hotswapping

Kegunaan lainnya feat debugger adalah bahwa kamu tidak perlu harus me-restart server kamu untuk setiap perubahan kecil yang kamu buat, terima kasih untuk kode hotswapping. Ini berarti bahwa kamu hanya dapat mengkompilasi ulang bagian-bagian dari kode kamu ketika sedang berjalan di debugger. Namun, ada beberapa keterbatasan, yang paling utama adalah:

  • Kamu tidak dapat membuat atau menghapus metode.

    • Perubahan metode tertentu untuk kode dalam metode. Anda tidak dapat modify tanda tangan (yang berarti namanya, kembali jenis dan parameter jenis)
  • Kamu tidak bisa menghapus ruang-ruang.

    • Anda tidak dapat memodifikasi nama kelas, superclass atau daftar antarmuka yang diimplementasikannya.
    • Anda dapat menambahkan ruang. Namun, setelah itu telah terbentuk dan hotswapped, ruang mengikuti aturan di atas.

Kamu bisa test fungsi ini: Memperkenalkan perintah sederhana untuk anda plugin yang hanya menulis kata-kata, seperti Sponge Kemudian simpan dan memulai server seperti yang diuraikan di atas. Jalankan perintah. Itu akan output Sponge. Sekarang merubah perintah untuk menulis kata yang berbeda untuk konsol, simpan file. Setelah perubahan, lakukan hal berikut untuk hotswap perubahan untuk menjalankan program:

Intellij IDEA

  • Buka Run menu, dari sisi atas IDE.
  • Di sisi bawah kategori awal istirahat, klik Reload Berubah Classes.

Gerhana

Tidak ada tindakan yang diperlukan. Segera anda menyimpan file, itu akan dibentuk kembali dan secara otomatis hotswapped akan menjalankan debug. Kecuali jika anda mengubah nya khususnya default tertentu, anda tidak akan memiliki untuk memicu secara manual hotswap.