Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ Idea:如何在开发的插件中公开类、接口和注释_Java_Intellij Idea_Intellij Plugin - Fatal编程技术网

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

Java IntelliJ Idea:如何在开发的插件中公开类、接口和注释,java,intellij-idea,intellij-plugin,Java,Intellij Idea,Intellij Plugin,我已经为IntelliJ Idea创建了一个插件。在插件中,我定义了一个我想在我的项目中使用的注释,但它似乎不可访问。 我应该如何在plugin.xml文件中指定要公开的软件包?当您安装插件时,它将位于某个位置-例如C:\Users\xxx\.IdeaIC14\config\plugins\… 现在您知道了jar文件的位置,可以将其作为依赖项添加到项目中。如果您使用Maven,您可以在pom中添加如下内容: <dependency> <groupId>yourpl

我已经为IntelliJ Idea创建了一个插件。在插件中,我定义了一个我想在我的项目中使用的注释,但它似乎不可访问。
我应该如何在plugin.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>

你的插件
然后将其用作普通的maven依赖项

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


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

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

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


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

也许你应该创建一个包含这些类、接口和注释的项目,你的主项目将依赖这些注释?这些注释由插件使用,因此我希望它们成为插件的一部分。我不希望用户重新定义它们。我想从插件中导入它们,我想这是有可能的。问题很清楚-请保持开放。您是否能够获得其他类似的插件,您没有创建这样的工作方式?为什么您想这样做,而不是将您的类放在一个jar中,可以很容易地作为maven
接收?