Eklenti Hata Ayıklama
Eklentinizdeki hataları keşfetmek zorlaştığında, yaptığınız her değişiklik ve günlük çıktıların karmaşıklığında boğulabilirsiniz ve hata ayıklama çok sıkıcı olabilir. Bu nedenle, bu kısım eklentinizi Java’nın hata ayıklama yeteneklerinden yararlanmak için nasıl yararlanabileceğinizi açıklayacak.
Çalışma Alanınız Hazırlanıyor
Hem Sponge’u hem de IDE’nizden eklentinizi çalıştırdığımız için çalışma alanınızdan bir proje gibi hangisini kullanmak istediğinize bağlı olarak ya SpongeForge ya da SpongeVanilla kodunu içeri aktarmanız gerekecektir. Bunu yapmak için yönergeleri ilgili projenin GitHub sayfasında bulabilirsiniz.Burada ilerlemeden önce bu yönergelei izleyin.
Şimdi sizin plugin projenizin yeni oluşturduğunuz SpongeForge/SpongeVanilla projesinde görünür olduğundan emin olmalısınız. Gerekli adımlar IDE’inize bağlıdır.
IntelliJ IDEA
IntelliJ’de her projenin kendi çalışma alanı (ları) vardır. Projenizi ** Sponge (Vanilla) ** projesinde görünür kılmak için bir * Modül * olması gerekir. Projenizi zaten :doc: workspace / idea bölümünde tanımlanan şekilde oluşturduğunuzu varsayarsak, aşağıdaki adımları izleyerek içe aktarın.
SpongeVanilla
/SpongeForge
projesini açın.``New``i takip eden ``File``a ve sonra ``Module from Existing Sources…``a tıklayın.
Eklenti projenizin dizinine gidin.
Eğer Gradle kullanıyorsanız,
build.gradle
dosyasını seçin, bir sonraki diyaloğun içindeki Use auto-import` seçeneğini işaretleyin ve onaylayın.Aksi takdirde, sadece dizinin tamamını seçin ve “Bitir” i tıklayın.
Finish
’e basın.
Tüyo
Henüz plugin’nizi oluşturmadıysanız, Module from Existing Sources...
yerine Module...
tıklayınız, ardından projenizi aşağıdaki diyaloğa takiben oluşturunuz.
Tutulma
Projenizi burada tarif edildiği gibi girin:
Tutulma ayarlama.
SpongeVanilla
/SpongeForge
projenizde aynı çalışma alanında oldupu sürece projeniz görünür olacaktır.
Sponge sınıf yoluna eklenti eklemek
Bunun arkasındaki fikir, Sponge’yi IDE’nizden normal gibi başlatacağımızdır. Bununla birlikte, aradaki fark, eklentinizi sınıf yoluna ekleyeceğiz. Sponge varsayılan olarak, sınıf yolunda bulunan tüm eklentileri yükleyeceğinden, eklenti projesini Sponge’nin sınıf yoluna ekleyerek, her değişiklikten sonra eser dosyasını yeniden oluşturmanız ve sunucu dizininize kopyalamanız gerekliliğinden kurtulursunuz.
Ardından, projeyi sınıf yolunuza dahil edecek şekilde Çalıştır / Hata ayıklama Yapılandırmasını düzenlemeniz gerekir. Bunu yeniden nasıl yapacağınız, IDE’nize bağlıdır:
IntelliJ IDEA
Proje Yapınızı açın.
Modules``a tıklayın.``SpongeForge
veyaSpongeVanilla
yı (seçiminize bağlı olarak) genişletin.SpongeForge_main
veyaSpongeVanilla_main
in seçili olduğundan emin olun.Sağ sütundaki ``Dependencies``i seçin.
Sütunun altındaki (
Add
) de ` +` sembolüne tıklayın ve ``Module Dependency``i seçin.``yourplugin_main``i seçin.
Listeye eklendikten sonra modüldeki
Export
seçeneğini kontrol ETMEYİN.
Uyarı
Due to a bug in IntelliJ (IDEA-194641), any dependencies that your plugin has (e.g.
the Kotlin standard library, or Gson) will not be added to the classpath using the above
method. This results in a ClassNotFoundException
when your plugin tries to access one
of these classes, even though it successfully compiled against that class.
This issue only affects running your plugin from IntelliJ as a module. Your final built plugin jar will run normally in both IntelliJ and a production server.
If your plugin has external dependencies, you’ll need to follow these steps in order to run it directly from IntelliJ:
Create a new Java module with
File
->New
->Module...
. Name itSpongeForgeContainer
.Open the module settings for
SpongeForgeContainer
as described aboveIn the dependency settings for
SpongeForgeContainer
, add a module dependency onSpongeForge_main
Edit your server run configuration. Change
Use classpath of module:
fromSpongeForge_main
toSpongeForgeContainer
You can leave all of your settings unchanged, including SpongeForge_main
’s dependency on your plugin module.
Now, all of your plugin’s dependencies should be added to the classpath when you run the server.
Tutulma
Kendi Çalıştır/Hata ayıkla Düzenlemenizi bulun.
Sol taraftaki Sponge (sunucusu) için kendi Çalıştır/Hata ayıkla konfigürasyonunuzu seçin.
Classpath
sekmesine geçin.Add Projects...
butonundan sonra ``User Entries``i seçin.Eklentinize uygun projeyi seçin.
OK
butonuna tıklayınız.Sağ alt köşedeki
Apply
butonuna tıklayın.
Yapılandırmayı Çalıştırma
After you’ve followed the previous steps, you should be ready to start debugging.
If you start your server from your IDE, its working directory will be the run
directory in your
SpongeForge/SpongeVanilla project. All the files usually created by a server (worlds, configs etc.) will be stored in
that run
directory and persist over multiple runs of your local test server, just as if you manually copied a
server .jar to the run
directory and started it from there.
IntelliJ IDEA
Çalıştır / hata ayıklama yapılandırmasını çalıştırmak için Yeşil sağ ok işaretine basmak yerine sağdaki Yeşil simgesini tıklayın, “Hata ayıklama”.
Tutulma
Rather than pressing the green right-pointing arrow to run your Run/Debug configuration, click the drop-down arrow of
the Debug icon (the one displaying a bug) and click your Test (Server)
configuration. If it doesn’t appear in the
drop-down menu, click Debug Configurations
. Select Test (Server)
configuration and hit the Debug
button
on the bottom left.
Hata ayıklama kullanımı
Sunucunuz (ve Plugin’iniz) Hata Ayıklayıcı’da çalıştığı için tuttuğu özellikleri kullanabilirsiniz. Bunların en önemlileri aşağıda kısaca açıklanmaktadır, ancak bunlar Sponge’ın özellikleri değil, IDE’nizin kullandığı Java Debugger.
Kesme Noktaları
Kesme noktaları, koda daha yakından bakmak için kullanışlı bir araçtır. Bir kesme noktası bir kod satırı veya bir işlevin başında ayarlanabilir. Bir kesme noktasına erişirken, hata ayıklayıcı kod yürütülmesini durduracak ve IDE, geçerli kapsamdaki tüm değişkenlerin içeriğini incelemenize izin veren bir görünüm açacaktır. IDE’nizin hata ayıklama görünümünde buna uygun düğmeye basmadığınız sürece kod yürütmesi devam etmez.
Hata ayıklama devam ederken kesme noktaları da eklenebilir, kaldırılabilir veya geçici olarak devre dışı bırakılabilir.
Tüyo
Tek bi sunucu işareti verilmiş zamandan daha fazla zaman alırsa, bekçi bu sunucunun çöktüğünü düşünür ve onu zorla kapatır. Kırılma noktaları ile çalışırken bu meydana gelebilir, bu nedenle test ortamlarınızı server.properties
dosyasını ve max-tick-time
değerini çok büyük bir sayıya ayarlamanız tavsiye edilir ( bir işaretin alabileceği milisaniye miktarı) veya ``-1``( Bekçi’yi komple etkisiz kılmak için).
IntelliJ IDEA
Bir kesme noktası eklemek veya çıkarmak için, sadece editörünüzün solundaki boş alana sol tıklayın.
Alternatif olarak, imlecinizi kesme noktasının eklenmesini veya kaldırılmasını istediğiniz satıra getirin ve sonra `` Çalıştır’ı tıklayın ve ardından `` Satır Kesme Noktasını Aç / Kapat ‘’ ı tıklayın.
Tutulma
Bir kesme noktası eklemek veya kaldırmak için, yalnızca düzenleyicinin solundaki boş alanı sağ tıklatın ve ardından `` Toggle Breakpoint`` seçeneğini tıklayın.
Alternatif olarak, imlecinizi kesme noktasının eklenmesini veya kaldırılmasını istediğiniz satıra getirmesini sağlayın ve ardından `` Çalıştır’ı tıklayın ve ardından `` Kesme Kırpma Değiştir ‘’ e tıklayın.
Kod Güncellemesi
Hata ayıklayıcı’nın diğer önemli özelliği, kod değiştirme sayesinde her küçük değişiklik için sunucunuzu yeniden başlatmanızın gerekmemesidir. Bu, hata ayıklayıcıda çalışırken yalnızca kod bölümlerini yeniden derleyebilirsiniz. Bununla birlikte, birkaç sınırlama vardır, bunlardan en önemlileri şunlardır:
Methodları oluşturamaz veya kaldıramazsınız.
Yöntemlerdeki değişiklikler, yöntemin içindeki * kodu ile sınırlıdır. İmzasını değiştiremezsiniz (adı, dönüş türü ve parametre türleri anlamına gelir)
Sınıfları silemezsiniz.
Bir sınıfın adını, üst sınıfını veya uyguladığı arabirimlerin listesini değiştiremezsiniz.
Sınıf ekleyebilirsiniz. Bununla birlikte, yapı oluşturulduktan ve çalıştırıldıktan sonra, sınıf yukarıdaki kuralları izler.
Bu işlevi test edebilirsiniz: Eklentinize sadece bir kelime yazan basit bir komut verin,``Sponge``gibi. Ardından kaydedin ve sunucuya yukarıda anlatıldığı gibi başlayın. Sponge
i çıkartacak komutu çalıştırın. Şimdi komutu konsola farklı bir kelime yazmak üzere değiştirin, dosyayı kaydedin. Bir değişiklikten sonra, Çalışan programdaki değişiklikleri hotswap için aşağıdaki gibi yapın:
IntelliJ IDEA
IDE’nin üstünden
Run
menüsünü açın.İlk kategori sonunun altındaki “Değiştirilen Sınıfları Yeniden Yükle” ye tıklayın.
Tutulma
Hiçbir işlem gerekmedi. Dosyayı kaydettiğiniz anda yeniden oluşturulur ve o anda çalışmakta olan hata ayıklama işlemiyle otomatik olarak çalışırken değiştirilir. Bu varsayılan varsayılan davranışı değiştirmediğiniz sürece, el ile çalıştırmayı tetiklemek zorunda kalmazsınız.