在使用 Intellij IDEA 插件一段时间后,我注意到具有外部依赖项的插件工作正常,即使这些依赖项没有与插件本身捆绑在一起,也没有在任何地方公开声明。
随机选择一个例子:GenerateToString插件依赖于 log4j。但是如果你看一下 jar 文件,你会发现它只包含它自己的类以及一些资源(图像和 html 文件)和元数据(必需的 plugin.xml 和 MANIFEST.MF),这些都没有参考 log4j。并且该 jar 文件是您安装插件所需的唯一内容。
这怎么可能?IDEA 如何管理这些依赖关系,使其在运行时不会抛出 aClassNotFoundException
或类似的东西?