Подтвердить что ты не робот

Как запустить локальный плагин в 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. Все еще не удалось решить.

4b9b3361

Ответ 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>"