1

我想通过 grails run-app 使用我的实现更改默认的 org.grails.plugins.tomcat.TomcatServerFactory 用户,但我无法做到。

查看源代码(grails 2.0.4)我在运行应用程序脚本中看到

grails-core/scripts/_GrailsRun.groovy

93    String defaultServer = "org.grails.plugins.tomcat.TomcatServerFactory"
94    def containerClass = getPropertyValue("grails.server.factory", defaultServer)

我试图用我的类设置 grails.server.factory 但它似乎被 grails 忽略了。

我已经测试了将配置放入 BuildConfing 或使用 -D running grails 传递它,但没有成功。

我的错误是什么?

谢谢

4

1 回答 1

1

问题是Tomcat插件在从命令行中读取您的值后强制该值scripts/_Events.groovy

您可以通过在 Tomcat 插件之后但在使用之前触发的事件处理程序中设置它来使其工作,例如

eventRunAppStart = {
   System.setProperty 'grails.server.factory', 'my.class.name'
}

如果你想让它保持动态,你可以将它的值设置为你自己的系统属性,例如

eventRunAppStart = {
   System.setProperty 'grails.server.factory',
         System.getProperty('my.grails.server.factory')
}

并将 run-app 调用更改为

grails -Dmy.grails.server.factory=my.class.name run-app
于 2012-06-01T18:38:26.823 回答