Как запустить локальный плагин в Grails 2.0?
В Grails существует вариант включения локального плагина из источников. Согласно документам, можно ввести BuildConfig.groovy
:
// Useful to test plugins you are developing.
grails.plugin.location.shiro =
"/home/dilbert/dev/plugins/grails-shiro"
// Useful for modular applications where all plugins and
// applications are in the same directory.
grails.plugin.location.'grails-ui' = "../grails-grails-ui"
Проблема заключается в том, что она не работает в Grails 2.0.RC1. Я попытался сделать grails clean
, установить плагин с grails install-plugin
и поместить его в BuildConfig.groovy
. Все еще не удалось решить.
Ответы
Ответ 1
Это работает для меня
grails.plugin.location.shiro = "/home/dilbert/dev/plugins/grails-shiro"
Где shiro
- имя плагина (а не имя каталога, в котором он находится). Убедитесь, что путь к плагину - это либо абсолютный путь, либо относительный путь к плагину из приложения.
Я обнаружил, что это иногда не работает, если плагин указан в application.properties
или BuildConfig.groovy
, поэтому, если он есть, удалите его, затем выполните grails clean
и перезапустите приложение.
Ответ 2
Вы также можете установить плагин в свой локальный кеш-память.
Документация говорит об этом:
3.7.10 Развертывание в репозиторий Maven
maven-install
Команда maven-install установит проект Grails или артефакт плагина в ваш локальный кеш Maven:
grails maven-install
Это имеет то преимущество, что вы можете включить плагин в родительское приложение, используя более общий синтаксис ":plugin-name:version"
Что позволяет вашему приложению определять наилучшее место для извлечения плагина при производстве. Из внутреннего maven-repo или эквивалентного.
Ответ 3
С Grails 3.x есть еще один способ сделать это. Предположим, у вас есть приложение grails и плагин (исходный код) внутри одного и того же каталога проектов:
/my-project
---/my-app
---/grails-shiro
Чтобы запустить локальный плагин, вы должны создать файл settings.gradle
в каталоге my-project
с указанием местоположения вашего приложения и плагина:
include 'my-app', 'grails-shiro'
Затем добавьте зависимость в ваше приложение build.gradle:
compile project(':grails-shiro')
Вы сделали.
Дополнительную информацию смотрите в документации плагинов.
Ответ 4
Окружать имя плагина кавычками, если оно содержит тире:
grails.plugin.location.'plugin-name-with-dashes' = "<path>"
Ответ 5
Вы можете добавить ZIP файл для плагина в ваш /lib, и он будет установлен.
Пример:
compile ":myPlugin:1.0"
Файл:
/lib/myPlugin-1.0.zip
Примечание. Вы должны закрепить содержимое папки плагина.
Источник: http://grails.1312388.n4.nabble.com/Insert-own-local-plugin-into-build-config-td4646704.html