我正在尝试使用命令
在tomcat上部署grails应用程序grails prod tomcat deploy --stacktrace
但是,我收到了以下错误。知道如何解决这个问题吗?我是第一次部署它。应用程序在我的本地计算机(mac)上的开发模式下工作正常。
| Error Error executing script Tomcat: No such property: warName for class: Tomcat (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
groovy.lang.MissingPropertyException: No such property: warName for class: Tomcat
at Tomcat$_run_closure1.doCall(Tomcat:30)
at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy:185)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy)
at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)
at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy:185)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners$0.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:591)
at gant.Gant.executeTargets(Gant.groovy:590)
| Error Error executing script Tomcat: No such property: warName for class: Tomcat
答案 0 :(得分:3)
我也遇到了这个问题,这是一个已知问题here。短期解决方法是修改文件
~/.grails/<vers>/projects/<project-name>/plugins/tomcat-7.0.42/scripts.Tomcat.groovy
如图所示here。
答案 1 :(得分:0)
如果我没错,那里没有名为'grails prod tomcat deploy'的命令。如果你告诉我们你从哪里获得这个命令,那就太好了。
默认情况下,大多数部署配置都是为了开发而开发的,但您可以根据需要更改(Config.groovy,BuildConfig.grovvy等)
可能会在以下步骤中为您提供帮助。
Config.groovy
环境{ 发展{ grails.logging.jul.usebridge = true }
生产{
grails.logging.jul.usebridge = false
// grails.serverURL =“http://www.changeme.com”
//其他生产env相关参数在这里
} 强>
}
BuildConfig.groovy
以及依赖关系和其他配置检查以下条目
// grails.project.class.dir =“target / classes”
//grails.project.test.class.dir =“target / test-classes”
//grails.project.test.reports.dir =“target / test-reports”
//grails.project.work.dir =“target / work”
//grails.project.target.level = 1.7
//grails.project.source.level = 1.7
grails.project.war.file =“target / $ {appName} .war”//你的项目战争文件
运行'grails run-war' - 这将默认在生产环境中运行,并在给定文件夹下为您提供战争,
将战争部署到tomcat。
感谢
Motilal