我听说你应该输入命令
grails war
以生成项目。到目前为止,我一直认为Gradle负责在Grails中构建应用程序。我一直在做后者,坚信我的应用程序已经构建好了。那么两者之间有什么区别
grails war
和
gradle build
?
只是圣杯战争是gradle构建+创建战争文件吗?
比较Grails和Gradle并不是那么简单。Gradle是一个构建工具,而Grails是一个Web应用程序框架。
但是,Grails提供了一个命令行工具,在文档中进行了描述:
Grails集成了强大的构建系统Gant,它是Apache Ant的Groovy包装器。
因此,Grails不使用Gradle。
grails
命令的基本用法如下所示:
grails [environment]* [command name]
其中,特别是命令名称参数必须是预定义值中的一个。您可以在此处找到有关war
命令的文档。
gradle
命令的基本用法如下所示:
gradle [option...] [task...]
列出的任务参数可以是build.gradle
脚本或插件创建的任务的名称。将执行所有提到的任务及其各自的任务依赖项。如果您使用 Gradle War 插件,它将生成一个war
任务,该任务也将(传递地)添加为build
任务的任务依赖项。因此,每当您调用gradle build
时,都会创建一个WAR文件。您也可以通过gradle war
直接调用此任务。
编辑
我刚刚了解到Grails可以从某个版本开始使用Gradle。我甚至找到了一个列表,Grails命令调用哪个Gradle任务。根据此列表,调用grails war
等同于调用gradle assemble
。assemble
任务直接取决于war
任务。
gradle build
是 Gradle 的生命周期任务,通常包括构建软件所需的其他任务(如compileJava
)和其他生命周期任务(如assemble
和check
)。
在Grails的情况下,它将构建委托给Gradle和war
任务,并且不包括执行单元测试的检查生命周期。