Плагин IntelliJ: Maven, Gradle и Travis-CI
В настоящее время моя встроенная структура для плагина немного запутана: я использую обычный файл проекта IDEA для локальной сборки плагина. Когда я нажимаю на репо, а travis-ci его строит, он использует maven pom.xml
потому что для работы travis, он всегда должен загружать полные источники IDEA.
Хотя это работает, у этого есть несколько недостатков:
- Мне нужно обновлять два встроенных механизма. Это
- Когда выходит новая версия IDEA (каждые несколько недель), мне нужно изменить SDK в maven и в моих настройках IDEA
- Когда я добавляю новую библиотеку, меняю ресурсы и т. Д. Мне нужно сделать это для двух двух параметров.
- Я столкнулся с проблемами, когда держал плагин 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. Основные преимущества в том, что
- Он загружает и использует правильный IDEA SDK, в то время как вам нужно только указать версию IDEA.
- Он может опубликовать ваш плагин в вашем репозитории Jetbrains и сделать его мгновенно доступным для всех пользователей
- Это исправляет элементы в вашем
plugin.xml
Например, вы можете использовать один центральный номер версии вgradle.build
и это сохранитplugin.xml
актуальный или может включать в себя заметки об изменениях - Он легко интегрируется с Travis-CI
Как использовать Gradle с существующим плагином IDEA
Сделай это вручную. Это намного проще.
- Создать пустой
build.gradle
файл - Посмотрите на пример и прочитайте README (их много
build.gradle
проектов в конце), чтобы увидеть, что делает каждое свойство intellij. - Адаптируйте его к вашему плагину
- Настройка
intellij.version
ты хочешь строить против - Настройка вашего
intellij.pluginName
- Определите, где ваши источники и ресурсы
- Определите версию своего плагина
- Определите оболочку Gradle, которая позволяет людям (и Трэвису) создавать ваш плагин без Gradle
- Настройка
- Создайте сценарии обертки Gradle с
gradle wrapper
- Протестируйте и исправьте процесс сборки локально
./gradlew assemble
Если все работает хорошо, вы можете нажать build.gradle
, gradlew
, gradlew.bat
и gradle
папка для вашего репо.
Здание с Трэвис-CI
Для Трэвиса вы хотите использовать gradlew
скрипт для сборки. Для этого вам нужно сделать его исполняемым во время запуска travis. Пример можно найти здесь.