grails 3.3.9,添加设置后,插件将无法编译。gradle

时间:2019-01-11 17:09:34

标签: grails

我在Mac上安装了grails 3.3.9。

如果我创建普通应用程序,例如使用:

grails create-app myapp

我可以创建域类,视图等,运行应用程序并查看网页。

但是,我需要两个不同的Web应用程序(一个用于内部后台,一个用于面向公共网站的客户)。解决方案是创建一个仅包含域对象和服务层的核心插件,然后由两个Web应用程序以及后来的API应用程序等调用。

我按照官方指示here

即:

$ 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”,“核心”
  2. 包括“核心”,“ myapp”
  3. 包括“:myapp”,“:core”

有什么想法吗?

更新1

我刚刚在3.3.8中尝试过,它似乎可以工作。因此,这似乎是3.3.9中的错误,导致无法使用模块化应用。

0 个答案:

没有答案