IntelliJ Idea:如何在开发的插件中公开类、接口、注释



我为IntelliJ Idea创建了一个插件。在插件中,我定义了一个要在项目中使用的注释,但它似乎无法访问。 我应该如何在插件.xml文件中指定我要公开的包?

当您安装插件时,它将位于某个位置 - 例如C:Usersxxx.IdeaIC14configplugins...

现在您知道 jar 文件的位置,可以将其作为依赖项添加到项目中。如果你使用Maven,你可以在你的pom中添加这样的东西:

<dependency>
<groupId>yourplugin</groupId>
<artifactId>yourplugin</artifactId>
<version>1</version>
<systemPath>C:Usersxxx.IdeaIC14configpluginsyourplugin.jar</systemPath>
<scope>system</scope>
</dependency>

或者,您可以将 jar 安装到本地存储库中,然后将其用作普通的 maven 依赖项。

如果没有,则直接在项目设置中添加依赖项,就像添加任何其他 jar 一样。

plugin.xml与这些无关,这都是关于 jar 和类路径的。您可以在插件中做的是一些用户友好的检查和操作,这将为您添加依赖项。

默认情况下,插件可以自动读取和访问安装在同一个 IDE 上的任何其他插件的公共成员(即您的插件可以读取公共变量,调用公共函数 - 一切都在同一个类路径上)。如果您依赖于另一个插件,则必须首先将其作为显式依赖项添加到插件配置文件中,以便最终用户的 IDE 知道下载并安装插件所需的插件依赖项(如果缺少它们)。

在开发过程中,您现在应该使用 Gradle。在项目的build.gradle(或build.gradle.kts)文件中,gradle-intellij-pluginintellij.plugins属性将允许您指定插件依赖项的idversion。这些属性的值可以在插件存储库中找到,参见。Plugin XML ID)。随后,gradle-intellij-plugin会将所需的 IntelliJ 平台插件作为外部库添加到您的项目中,从而允许您获得代码完成、静态分析并在插件沙箱中测试您的插件及其依赖项(通过./gradlew runIde)。

出于稳定性原因,插件应避免使用其他插件的内部类。如果您希望使其他插件能够以编程方式使用您的插件(即假设您要提供API),那么IntelliJ平台具有所谓的扩展点的概念。这些将允许您定义一个具体的接口,或为其他插件定义合同以访问插件的功能,而无需了解其源代码。使用扩展点还有一个额外的好处,即将这些插件与任何内部插件重构分离。

最新更新