0

Grails 2.5 アプリケーションを Grails に移行していますが、.NET3.0.9でクラスパス リソースを読み取る際に問題が発生していgrails-app/init/BootStrap.groovyます。

ClassPathResourceGrails 2.5.x では、リソース ファイルを同じフォルダに置くと、Spring を使用してリソース (テキスト ファイルなど) にアクセスできました。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 に答える