Grails 执行脚本CreateAuthDomains时出错:null\scripts\Init.groovy(系统找不到指定的路径)

Grails 执行脚本CreateAuthDomains时出错:null\scripts\Init.groovy(系统找不到指定的路径),grails,spring-security,Grails,Spring Security,我正在尝试构建一个应用程序,它使用grails中的acegi和multitenant插件。我遵循本教程中的说明: 然而,当我得到这个指示时: grails create-auth-domains org.racetrack.User org.racetrack.Role Requestmap 我得到这个错误: Running script C:\Users\roise\.grails\1.3.7\projects\racetrack\plugins\acegi-0.5.2\scripts\C

我正在尝试构建一个应用程序,它使用grails中的acegi和multitenant插件。我遵循本教程中的说明:

然而,当我得到这个指示时:

grails create-auth-domains org.racetrack.User org.racetrack.Role Requestmap
我得到这个错误:

Running script C:\Users\roise\.grails\1.3.7\projects\racetrack\plugins\acegi-0.5.2\scripts\CreateAuthDomains.groovy
Error executing script CreateAuthDomains: null\scripts\Init.groovy (The system cannot find the path specified)
java.io.FileNotFoundException: null\scripts\Init.groovy (The system cannot find the path specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at gant.Gant$_closure1.doCall(Gant.groovy:128)
    at gant.Gant$_closure1.call(Gant.groovy)
    at _SecurityTargets_groovy.run(_SecurityTargets_groovy:25)
    at _SecurityTargets_groovy$run.call(Unknown Source)
    at CreateAuthDomains.run(CreateAuthDomains:23)
    at CreateAuthDomains$run.call(Unknown Source)
    at gant.Gant.prepareTargets(Gant.groovy:606)
Error executing script CreateAuthDomains: null\scripts\Init.groovy (The system cannot find the path specified)
运行脚本C:\Users\roise\.grails\1.3.7\projects\racetrack\plugins\acegi-0.5.2\scripts\CreateAuthDomains.groovy
执行脚本CreateAuthDomains时出错:null\scripts\Init.groovy(系统找不到指定的路径)
java.io.FileNotFoundException:null\scripts\Init.groovy(系统找不到指定的路径)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:138)
在gant.gant$\u closure1.doCall中(gant.groovy:128)
在gant.gant$\u closure1.call(gant.groovy)
运行(\u SecurityTargets\u groovy:25)
at\u SecurityTargets\u groovy$run.call(未知源)
在CreateAuthDomains.run(CreateAuthDomains:23)
在CreateAuthDomains$run.call处(未知源)
在gant.gant.prepareTargets(gant.groovy:606)
执行脚本CreateAuthDomains时出错:null\scripts\Init.groovy(系统找不到指定的路径)
我试着按照教程一直到最后一个逗号。唯一不同的是,我在STS中开发,无法从命令行运行createapp命令,实际上我必须从new菜单创建一个新应用。到目前为止,我使用的其他三个命令——我输入并执行的命令与图中所示完全相同。

这里的问题是没有设置“GRAILS\u HOME”环境变量

从:


在Windows上,这通常是在我的计算机/Advanced/environment Variables下设置一个环境变量的问题。我相信@arcdegree是正确的,问题是因为脚本无法确定GRAILS_HOME是什么,但在我的情况下,环境变量设置正确,我仍然遇到问题

我发现可以解决我的问题并且我相信可以解决您的问题的是,您尝试运行的命令(创建auth域)正在访问acegi插件中需要更新的脚本(CreateAuthDomains.groovy)。现在,这个问题已经很老了,没有公认的答案,所以我不确定你是否仍然遇到这个问题,但我确实认为这个答案将帮助其他人研究类似的问题。我的原因是试图使用一个旧的jsecurity插件,该插件已被一个新的插件所取代,但我的意图是使用我所指的一个文档所使用的东西

在本例中,您的脚本CreateAuthDomains可能使用了对GrailHome和includeTargets的旧引用,该引用应替换为调用GrailScript(“Init”)的单行。因此,请将以下几行注释掉:

  • grailsHome=Ant.project.properties.“environment.GRAILS\u HOME”

  • includeTargets由于我没有答案,我只能指出文章提到了Grails 1.2.2,而我可以看到您正在使用1.3.7,我也试过了。它不起作用(注意,“acegi”和“spring security core”插件之间有什么区别?如果我的内存正常,acegi在s2第2版发布时成为spring security。?!。那么为什么“acegi”仍然存在。人们不应该只使用spring security吗?是的,你现在应该使用spring security。
    
    includeTargets << grailsScript("Init")