GRAILS ---命令 grails war 和 gradle build 有啥区别?
Posted
技术标签:
【中文标题】GRAILS ---命令 grails war 和 gradle build 有啥区别?【英文标题】:GRAILS --- what's the difference between commands grails war and gradle build?GRAILS ---命令 grails war 和 gradle build 有什么区别? 【发布时间】:2017-11-24 07:59:51 【问题描述】:我听说你应该输入命令
grails war
构建您的项目。到目前为止,我一直认为 Gradle 负责在 Grails 中构建应用程序。我一直在做后者,坚信我的应用程序已经构建。那么有什么区别
grails war
和
gradle build
?
难道只是grails war就是gradle build + create war文件吗?
【问题讨论】:
【参考方案1】:比较 Grails 和 Gradle 并不是那么简单。 Gradle 是一个构建工具,而 Grails 是一个 Web 应用程序框架。
但是,Grails 提供了一个命令行工具,在 docs 中有描述:
Grails 整合了强大的构建系统 Gant,它是一个围绕 Apache Ant 的 Groovy 包装器。
所以,Grails 确实不使用 Gradle。
grails
命令的基本用法如下:
grails [environment]* [command name]
尤其是命令名称参数必须是预定义值之一。您可以在war
命令here 上找到文档。
gradle
命令的基本用法如下:
gradle [option...] [task...]
列出的任务参数可以是在build.gradle
脚本或插件中创建的任务的名称。所有提到的任务和它们各自的任务依赖都将被执行。如果您使用Gradle War Plugin,它将生成一个war
任务,该任务也将(传递地)添加为build
任务的任务依赖项。因此,无论何时调用gradle build
,都会创建一个WAR 文件。您也可以直接通过gradle war
调用此任务。
编辑
我刚刚了解到,从某个版本开始,Grails 可以甚至确实使用 Gradle。我什至发现a list Grails 命令调用了哪个 Gradle 任务。根据这个列表,调用grails war
相当于调用gradle assemble
。 assemble
任务直接依赖于war
任务。
【讨论】:
【参考方案2】:gradle build
是一个 Gradle 生命周期任务,通常包含构建软件所需的其他任务,例如 compileJava
和其他生命周期任务,例如 assemble
和 check
。
对于 Grails,它将构建委托给 Gradle 和 war
任务,并且不包括执行单元测试的检查生命周期。
【讨论】:
以上是关于GRAILS ---命令 grails war 和 gradle build 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS Elastic Beanstalk 中为多个 grails 环境使用单个 .war?
Grails 资源:图像是 404,即使它存在于 WAR 中