Grails 3.3.9, плагин не будет компилироваться после добавления settings.gradle - PullRequest
0 голосов
/ 11 января 2019

У меня установлен Grails 3.3.9.

Если я создаю обычное приложение, например, с помощью:

grails create-app myapp

Я могу создавать классы доменов, представления и т. Д., Запускать приложение и просматривать веб-страницы.

Однако мне нужны два разных веб-приложения (одно для внутреннего бэк-офиса и одно для общедоступного веб-сайта, ориентированного на клиента). Решение состоит в том, чтобы создать основной плагин, который содержит только доменные объекты и сервисный слой, который затем вызывается двумя веб-приложениями, а также более поздними приложениями API и т. Д.

Я следовал официальным инструкциям здесь

т.е:.

$ grails create-plugin core --profile=plugin --features=hibernate5,events
$ Grails create-app myapp
$ create settings.gradle with: include "myapp","core"
$ edit build.grandle of myapp and add:

grails {
    plugins {
        compile project(':core')
    }
}

Теперь, когда я пытаюсь скомпилировать либо выполнить команду grails (например, grails create-service), я получаю следующее:

| Resolving Dependencies. Please wait...
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/me/dev/grails_projects/tst/core/build.gradle' line: 17

* What went wrong:
A problem occurred evaluating project ':core'.
> Failed to apply plugin [id 'org.grails.grails-plugin']
   > Could not find method runtimeOnly() for arguments [io.methvin:directory-watcher] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Если я удаляю settings.gradle, я могу скомпилировать плагин. Если я добавлю его обратно, произойдет сбой компиляции (или любой другой команды grails, например create-domain-class) с указанной выше ошибкой.

Вот build.gradle:

buildscript {
    repositories {
        mavenLocal()
        maven { url "https://repo.grails.org/grails/core" }
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:$grailsVersion"
        classpath "org.grails.plugins:hibernate5:${gormVersion-".RELEASE"}"
    }
}

version "0.1"
group "core"

apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"org.grails.grails-plugin"
apply plugin:"org.grails.grails-plugin-publish"

оскорбительная строка 17:

apply plugin:"org.grails.grails-plugin"

Я также попытался создать плагин с именем "corex" вместо core на тот случай, если это было зарезервированное слово. Получил те же результаты - плагин не скомпилируется.

Обратите внимание, структура каталогов проекта выглядит следующим образом:

settings.gradle
myapp
   build.gradle
   etc.
core
   build.gradle.
   etc.

Я также пробовал несколько вариантов строки в settings.gradle, в том числе:

  1. включает «myapp», «core»
  2. включает 'core', 'myapp'
  3. include ": myapp", ": core"

Есть идеи?

ОБНОВЛЕНИЕ 1

Я только что попробовал это с 3.3.8, и, кажется, работает. Таким образом, в 3.3.9 может показаться, что это ошибка, которая не позволяет использовать модульные приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...