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 olehBaru
, kemudianModul dari sumber-Sumber yang Ada...
.Arahkan ke direktori proyek plugin Anda.
Jika kamu menggunakan Gradle, pilih
build.gradle
file, dalam dialog berikutnya cekGunakan 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 anda harus memastikan bahwa anda telah menyesuaikan konfigurasi Run/Debug dengan tepat, seperti yang ditunjukkan didalam Sponge `README.md <https://github.com/SpongePowered/SpongeForge/blob/stable-5/README.md#Running>
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 olehProyek struktur...
.ATAU, klik, lambang,``struktur proyek``, di sudut kanan atas sebelah kanan dari IDE, kemudian `` Cari`` lambang.
Klik
Modul
. MemperluasSpongeForge
atauSpongeVanilla
kelompok (tergantung apa yang anda pilih).Pastikan
SpongeForge_main
atauSpongeVanilla_main
di pilih.Di kolom sebelah kanan, pilih
Dependensi
tab.Klik
+
lambang (Add
) di bagian bawah kolom, dan pilihModul Ketergantungan
.Pilih
yourplugin_main
.JANGAN memeriksa pilihan
Export
pada modul, apabila itu ditambahkan ke daftar.
Gerhana
Temukan Konfigurasi Run / Debug Anda
Klik
Menjalankan
, diteruskan denganMenjalankan Konfigurasi...
ATAU, klik tanda panah drop-down di sebelah tanda Run/Debug dan kemudian
Menjalankan Konfigurasi...
atauDebug Konfigurasi...
, masing-masing.
Pilih Run / Debug Configuration untuk Sponge (Server) di sisi kiri.
Beralih ke
Classpath
tab.Pilih
Pengguna
, diteruskan denganMenambahkan 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.