Плагин IntelliJ: Maven, Gradle и Travis-CI

В настоящее время моя встроенная структура для плагина немного запутана: я использую обычный файл проекта IDEA для локальной сборки плагина. Когда я нажимаю на репо, а travis-ci его строит, он использует maven pom.xml потому что для работы travis, он всегда должен загружать полные источники IDEA.

Хотя это работает, у этого есть несколько недостатков:

  1. Мне нужно обновлять два встроенных механизма. Это
    • Когда выходит новая версия IDEA (каждые несколько недель), мне нужно изменить SDK в maven и в моих настройках IDEA
    • Когда я добавляю новую библиотеку, меняю ресурсы и т. Д. Мне нужно сделать это для двух двух параметров.
  2. Я столкнулся с проблемами, когда держал плагин IDEA Maven включенным, потому что он видел pom.xml и вмешивался в мой местный строй. Отключение означает, что я не могу загружать библиотеки с Maven, который имеет функцию отслеживания зависимостей.

Я видел, что у Gradle есть плагин "идея", и после поиска в Google у меня сложилось впечатление, что Gradle является предпочтительным выбором в наши дни. Я видел лучший способ добавить поддержку Gradle в IntelliJ IDEA, и я уверен, что смогу использовать ответы там, чтобы повернуть pom.xml в действительный build.gradle,

Однако, возможно, кто-то еще уже сделал это или может предоставить лучший подход. То, что я ищу, - это унифицированный способ создания моего плагина локально и на Travis-CI.

Некоторые детали

Для компиляции плагина IDEA вам нужен его SDK, к которому вы можете получить доступ через установку IDEA или загрузку полного пакета. Локально я использую мою установку для SDK. С Трэвисом у моего maven встроенного есть правило загружать tar.gz и извлечь его.

1 ответ

Оказывается, что, в частности, для создания плагина IntelliJ, Gradle, похоже, имеет много преимуществ. В основном это связано с отличным плагином IntelliJ для Gradle, который значительно упрощает компиляцию плагинов. С Gradle я мог превратить мои>220 строк сборки Maven в несколько строк легко читаемого кода Gradle. Основные преимущества в том, что

  1. Он загружает и использует правильный IDEA SDK, в то время как вам нужно только указать версию IDEA.
  2. Он может опубликовать ваш плагин в вашем репозитории Jetbrains и сделать его мгновенно доступным для всех пользователей
  3. Это исправляет элементы в вашем plugin.xmlНапример, вы можете использовать один центральный номер версии в gradle.build и это сохранит plugin.xml актуальный или может включать в себя заметки об изменениях
  4. Он легко интегрируется с Travis-CI

Как использовать Gradle с существующим плагином IDEA

Сделай это вручную. Это намного проще.

  1. Создать пустой build.gradle файл
  2. Посмотрите на пример и прочитайте README (их много build.gradle проектов в конце), чтобы увидеть, что делает каждое свойство intellij.
  3. Адаптируйте его к вашему плагину
    1. Настройка intellij.version ты хочешь строить против
    2. Настройка вашего intellij.pluginName
    3. Определите, где ваши источники и ресурсы
    4. Определите версию своего плагина
    5. Определите оболочку Gradle, которая позволяет людям (и Трэвису) создавать ваш плагин без Gradle
  4. Создайте сценарии обертки Gradle с gradle wrapper
  5. Протестируйте и исправьте процесс сборки локально ./gradlew assemble

Если все работает хорошо, вы можете нажать build.gradle, gradlew, gradlew.bat и gradle папка для вашего репо.

Здание с Трэвис-CI

Для Трэвиса вы хотите использовать gradlew скрипт для сборки. Для этого вам нужно сделать его исполняемым во время запуска travis. Пример можно найти здесь.

Другие вопросы по тегам