2012-07-15 19 views
8

Intellij IDEA eklentileri ile bir süre oynadıktan sonra, dış bağımlılıkları olan eklentilerin düzgün çalıştığını, bu bağımlılıkların eklentinin kendisiyle birlikte oluşturulmamış olsa da veya herhangi bir yerde herkese açık olarak bildirildiklerini fark ettim.Intellij IDEA eklenti bağımlılıklarını nasıl yönetiyor?

Rastgele bir örnek seçmek: GenerateToString eklentisi, diğer şeylerin yanı sıra, log4j'ye bağlıdır. Ancak kavanoz dosyasının içine bakarsanız, sadece kendi sınıflarını ve bazı kaynakları (görüntüler ve html dosyaları) ve meta verileri (zorunlu plugin.xml ve MANIFEST.MF) içerdiğini görürsünüz. log4j'ye başvuru. Ve bu jar dosyası eklentiyi kurmak için ihtiyacınız olan tek şey.

Bu nasıl olabilir? IDEA bu ​​bağımlılıkları nasıl yönetir, böylece bir çalışma zamanında ClassNotFoundException veya benzeri bir şey atmaz?

cevap

6

IDEA, eklenti dağıtımında gerekli sınıfı bulamazsa, özel sınıf yükleyicisi kullanır, IDEA_HOME/lib dizinindeki tüm kavanozlarda aranır.