IntelliJ Idea: как выставлять классы, интерфейсы, аннотации в разработанных плагинах

Я создал плагин для IntelliJ Idea. В плагине я определил аннотацию, которую хочу использовать в своих проектах, но она не кажется доступной. Как я должен указать в плагине.xml-файл пакеты, которые я хочу предоставить?

2 ответов


когда вы устанавливаете плагин, он будет на определенном месте-например 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.

Если нет, то добавьте зависимость непосредственно в настройках проекта, как это было в любом другом сосуд.

plugin.xml не имеет ничего общего с этим, это все о jars и classpath. Что вы можете сделать в своем плагине, это некоторые удобные проверки и действия, которые добавят зависимость для вас.


по умолчанию плагины могут автоматически читать и получать доступ к публичным членам любой другой плагин, установленный на той же IDE (т. е. ваш плагин может читать открытые переменные, вызывать публичные функции - все идет по одному пути к классам). Если вы зависите от другого плагина, вы должны сначала добавить его как явная зависимость внутри файл конфигурации плагина, так что IDE конечного пользователя будет знать, чтобы загрузить и установить необходимый плагин вашего плагина зависимости, если они отсутствуют.

во время разработки, вы должны использовать Gradle. В вашем проекте build.gradle (или build.gradle.kts файла)intellij.plugins свойства gradle-intellij-plugin позволит вам указать id и version зависимостей плагина. Значения для этих атрибутов можно найти на Репозиторий Плагинов, ср. Plugin XML ID). Впоследствии gradle-intellij-plugin добавит желаемый плагин платформы IntelliJ в ваш проект в качестве Внешняя Библиотека, тем самым позволяя вам получить завершение кода, статический анализ и проверить свой плагин вместе с его зависимостями внутри плагина sandbox (через ./gradlew runIde).

Плагины должны избегать использования внутренних классов других плагинов по причинам стабильности. Если вы хотите, чтобы другие плагины использовать ваш плагин программно (т. е. предположим, вы хотите предоставить API), то платформа IntelliJ имеет концепцию так называемого,