0

我正在将 Grails 2.5 应用程序迁移到 Grails 3.0.9,并且在读取grails-app/init/BootStrap.groovy.

在 Grails 2.5.x 中,ClassPathResource当将资源文件放入与BootStrap.groovy

def file1 = new ClassPathResource('my-textfile.txt').file

在 Grails 3 中,当我使用grails run-app. 所有资源均取自src/main/resources. 但是,如果我使用 IntelliJ 中的 Spring Boot Application(位于/grails-app/init/a/b/Application.groovy)类启动应用程序,BootStrap.groovy 将不再找到资源。

有谁知道在BootStrap.groovy使用启动应用程序时如何在 Grails 3.0.9中访问这些文件Application.groovy

4

2 回答 2

1

根据 Gradle 约定,我将资源放在下面,src/main/resource因为它们需要在运行时可访问。

由于某些原因,我grails-app/init/a/b/Application.groovy找不到这些资源,所以我不得不放置一个符号链接到grails-app/init/a/b. 之后,一切都按预期工作。

于 2015-12-01T11:28:42.263 回答
0
class BootStrap {

     def init = { servletContext ->

        def config = new ConfigSlurper().parse(new File("${System.properties['user.dir']}/grails-app/conf/test.groovy").toURL())
        println config
        println config.hfy.test
    }
    def destroy = {
    }
}

${System.properties['user.dir']} :项目目录

于 2015-12-04T08:28:43.127 回答