2012-07-15 68 views
8

在使用Intellij IDEA插件一段時間後,我注意到具有外部依賴關係的插件可以很好地工作,即使這些依賴關係沒有與插件本身捆綁在一起,也不會在任何地方公開聲明。Intellij IDEA如何管理插件依賴關係?

挑選一個隨機的例子:GenerateToString插件取決於,除其他外,在log4j。但是如果你看一下jar文件,你會發現它只包含它自己的類以及一些資源(圖片和html文件)和元數據(強制plugin.xml和MANIFEST.MF),其中沒有任何一個參考log4j。那個jar文件是你需要安裝插件的唯一東西。

這怎麼可能? IDEA如何管理這些依賴關係,以便在運行時不會拋出ClassNotFoundException之類的東西?

回答

6

IDEA使用自定義類加載器,如果它沒有在插件分配中找到所需的類,則在位於IDEA_HOME/lib目錄中的所有jar中進行搜索。