模块化 grails 应用程序的方法是创建一个具有通用组件(域对象、服务等)的插件,然后创建一个或多个使用它的 Web 应用程序。简单而有效。
问题是 netbeans 不会获取依赖项,即使它是在 build.grade 文件和 settings.gradle 中定义的。
该项目是这样创建的:
mkdir myproject
cd myproject
grails create-plugin core
grails create-app myapp
现在采取以下步骤来配置项目:
- 在项目根目录中创建一个“settings.gradle”,其中包含“include 'myapp', 'core'”行
编辑 myapp/build.gradle 并添加以下部分:
grails { 插件 { 编译项目(':core') } }
编辑 core/gradle.properties 并添加“exploded=true”。
现在我们可以简单地在 netbeans 中打开 core 和 myapp,它会将它们都作为 grails 项目来选择。
现在我们可以创建一个域对象,例如:
在核心/grails-app/domain/me/core/User.groovy
package me.core
class User {
String first
String last
static constraints = {
}
}
在 myapp/grails-app/controllers/me/admin/UserController.groovy 中:
package me.admin
import me.core.User // This import fails in the IDE!
class UserController {
static scaffold=User
}
现在您可以在 myapp 目录中执行“grails run-app”,您的应用程序运行并包含插件中的任何类。
文件结构是这样的:
myproject
settings.gradle
myapp
build.gradle
core
build.gradle
但是,在 netbeans UI 中,myapp 无法“看到”或解析任何插件类。它似乎不知道 settings.gradle 也不知道插件依赖。
如何将核心作为依赖项添加到 netbeans 中的 myapp 项目?有一个“grails plugins”项目上下文菜单,其中有“reload plugins”和“new plugins”,但是这两个项目都是空的(看起来它们已经坏了)。
有任何想法吗?