0

我已经安装了 Grails Fixtures 插件 ( http://www.grails.org/plugin/fixtures ) 用于将一些初始数据加载到我的数据库中以用于开发和测试环境。我还将 Grails 与 Maven 集成一起使用。

我已将数据加载代码添加到 BootStrap.groovy:

import grails.util.Environment

class BootStrap {
    def fixtureLoader

    def init = { servletContext ->

        if (Environment.current == Environment.DEVELOPMENT || Environment.current == Environment.TEST) {
            //def fixtureLoader = new FixtureLoader(grailsApplication)
            fixtureLoader.load("init")
        }
    }

}

当我使用“grail run-app”运行我的 Grails 应用程序时,它运行良好,但如果我使用 Maven Grails 命令“mvn grails:run-app -Dgrails.env=development”,那么它就不起作用了。它抛出以下错误:

Error executing bootstraps; nested exception is java.lang.NullPointerException: Cannot invoke method load() on null object

如果我使用 Maven Grails 命令“mvn grails:run-app”,似乎“fixtureLoader”bean 未正确初始化。

你有什么主意吗?或者它可能是一个错误......

4

1 回答 1

2

将其添加为dependencyinpom.xml而不是BuildConfig.groovy. Maven 查看 pom 以解决依赖关系(在本例中为插件)。

<dependency>
  <groupId>org.grails.plugins</groupId>
  <artifactId>fixtures</artifactId>
  <version>1.0.7</version>
  <scope>runtime</scope>
  <type>zip</type>
</dependency>

注意:范围runtime使工件在test范围内也可用。

于 2013-04-19T13:25:29.153 回答