Grails 6.1.2升级后无法生成指定环境WAR文件的问题咨询
Grails 6.1.2 生成指定环境WAR文件问题解决
1. 指定环境生成WAR的正确命令
Grails 6完全基于Gradle构建,原grailsw <env> war的语法已废弃。要指定环境打包WAR,直接给gradlew添加环境参数即可:
- Linux/macOS环境:
./gradlew -Dgrails.env=test war - Windows PowerShell环境:
./gradlew.bat -Dgrails.env=test war
将命令中的test替换为你需要的环境名(如prod)即可。
2. 解决gradlew生成WAR与旧版差异大的问题
差异源于Grails 6对Gradle构建流程的重构,可通过以下方式调整对齐:
- 打开
build.gradle文件,检查war代码块的配置,迁移原Grails 5中的打包规则,比如排除冗余依赖、指定资源目录:war { // 排除不需要的依赖包 exclude '**/unused-library.jar' // 自定义资源打包范围 from('src/main/webapp') { include '**/*.html' include '**/*.js' } } - 核对
grails-app/conf/application.yml(或application.groovy)中的环境配置,确保各环境(如test、prod)的数据源、资源路径等配置与之前版本一致,无遗漏或错误。
3. grails test war报错原因说明
Grails 6的CLI命令语法已调整,test war并非有效命令。要构建测试环境的WAR包,直接使用上述带环境参数的gradlew命令即可,无需通过Grails CLI的该写法。
内容的提问来源于stack exchange,提问作者Raymond Holguin
相关产品推荐
相关产品推荐

