IntelliJ Idea:如何在开发的插件中公开类,接口,注释
我为IntelliJ Idea创建了一个插件。在插件中,我定义了一个我想在我的项目中使用的注释,但它似乎无法访问。我应该如何在插件.xml文件中指定要公开的软件包?
我为IntelliJ Idea创建了一个插件。在插件中,我定义了一个我想在我的项目中使用的注释,但它似乎无法访问。我应该如何在插件.xml文件中指定要公开的软件包?
当您安装插件时,它将位于某个位置 - 例如C:\Users\xxx\.IdeaIC14\config\plugins\...
现在您已经知道 jar 文件的位置,可以将其作为依赖项添加到项目中。如果你使用 Maven,你可以在你的 pom 中添加类似这样的东西:
<dependency>
<groupId>yourplugin</groupId>
<artifactId>yourplugin</artifactId>
<version>1</version>
<systemPath>C:\Users\xxx\.IdeaIC14\config\plugins\yourplugin.jar</systemPath>
<scope>system</scope>
</dependency>
或者,您可以将 jar 安装到本地存储库中,然后将其用作正常的 maven 依赖项。
如果没有,则直接在项目设置中添加依赖项,就像它是任何其他jar一样。
plugin.xml
与这些无关,这都是关于jar和classpath的。您可以在插件中做的是一些用户友好的检查和操作,这将为您添加依赖项。
默认情况下,插件可以自动读取和访问安装在同一IDE上的任何其他插件的公共成员(即,您的插件可以读取公共变量,调用公共函数 - 所有内容都在同一类路径上进行)。如果您依赖于另一个插件,则必须首先将其作为显式依赖项添加到插件配置文件中,以便最终用户的 IDE 知道在缺少插件所需的插件依赖项时下载并安装这些依赖项。
在开发过程中,您现在应该使用Gradle。在项目的(或)文件中,的 intellij.plugins
属性将允许您指定插件依赖项的 and。这些属性的值可以在插件存储库中找到,参见 )。随后,会将所需的 IntelliJ 平台插件作为外部库添加到您的项目中,从而允许您获得代码完成、静态分析并测试您的插件及其在插件沙箱内的依赖项(通过 )。build.gradle
build.gradle.kts
gradle-intellij-plugin
id
version
Plugin XML ID
gradle-intellij-plugin
./gradlew runIde
出于稳定性原因,插件应避免使用其他插件的内部类。如果您希望使其他插件能够以编程方式使用您的插件(即假设您要提供API),那么IntelliJ平台具有所谓的扩展点的概念。这些将允许您定义一个具体的接口,或其他插件的合同来访问您的插件的功能,而无需了解其源代码。使用扩展点具有将这些插件与任何内部插件重构分离的额外好处。