命令行的使用
Grails 集成了强大的构建系统Gradle。
基本使用场景(语法格式)是:
# grails <<command name>>
Grails在以下目录中搜索要执行的脚本:
- USER_HOME/.grails/scripts
- PROJECT_HOME/src/main/scripts/
- PROJECT_HOME/plugins/*/scripts
- GRAILS_HOME/scripts
如果找到多个匹配项,Grails将向你提供执行哪一个的选择
可以使用可选的环境参数指定在其中执行命令的环境,也可以使用内置的环境名称之一:
grails dev run-app
grails test run-app
grails prod run-app
2
3
如果名称不是三个标准名称之一,则使用-D参数:
grails -Dgrails.env=uat run-app
有关详细信息,请参阅命令行上的用户指南部分。
命令行
Grails 3.0的命令行与以前的Grails版本有很大的不同,它提供了一些api,用于调用Gradle执行与构建相关的任务,以及执行代码生成。
当你输入:
grails <<command name>>
Grails基于当前应用程序的概要文件搜索概要文件存储库。如果配置文件是用于web应用程序的,则从web配置文件及其继承的基本配置文件读取命令。
当你输下一下命令:
grails run-app
将从应用程序的配置文件搜索命令:
- PROJECT_HOME/src/main/scripts/run-app.groovy
- [profile]/commands/run-app.groovy
- [profile]/commands/run-app.yml
要获取所有命令的列表以及有关可用命令的一些帮助,可以输入以下命令:
grails help
输出Grails的使用介绍和命令列表:
| Examples:
$ grails dev run-app
$ grails create-app books
| Available Commands (type grails help 'command-name' for more info):
| Command Name Command Description
----------------------------------------------------------------------------------------------------
create-app Creates an application
create-plugin Creates a plugin
create-profile Creates a profile
help Prints help information for a specific command
list-profiles Lists the available profiles
profile-info Display information about a given profile
2
3
4
5
6
7
8
9
10
11
12
13
- 有关各个命令的详细信息,请参阅《参考指南》的“快速参考”菜单中的命令行参考
参数
grails命令是基于gradle,因此会有出乎意料的报错。例如,在执行grails -Dapp.foo=bar run-app the app。foo系统的配置可能不会对应用程序起作用。这是因为bootRun在系统的配置文件build.gradle中。要使这个工作,您可以配置所有系统配置文件bootRun在build.gradle,如下:
bootRun{
systemProperties System.properties
}
2
3
或者,你仅仅想通过一个简单的配置,你可以使用任意前缀为系统属性添加前缀并且配置bootRun,如下:
bootRun{
bootRun {
systemProperties System.properties.inject([:]){acc,item-> item.key.startsWith('boot.')?acc << [(item.key.substring('boot.'.length())):item.value]:acc }
}
}
2
3
4
5
应用程序和JVM参数也可以在bootRun中指定
bootRun{
bootRun {
jvmArgs('-Dspring.output.ansi.enabled=always')
args('--app.foo=bar','--app.bar=foo') // Override the `app.foo` and `app.bar` config options (`grailsApplication.config`)
}
}
2
3
4
5
6
非交互模式
当您手动运行脚本,脚本提示你时,您可以回答问题并继续运行脚本。但是,当您将脚本作为自动化流程的一部分运行时,例如连续集成构建服务器,就没有办法“回答”这些问题。因此,您可以将--non-interactive开关传递给script命令,告诉Grails接受任何问题的默认答案,例如是否安装缺少的插件。
比如:
grails war --non-interactive
5.1 交互模式
交互式模式是Grails命令行的一个特性,它使JVM保持运行,并允许更快地执行命令。要激活交互模式,请在命令行键入“grails”,然后使用TAB completion获取命令列表:
如果在交互模式下需要打开文件,可以使用“open”命令和“TAB”,该命令将输出“完整文件路径”:
非常好的是,open命令可以理解逻辑别名“test report”和“dep report”,后者将分别打开最新的测试和依赖关系报告。换句话说,要在浏览器中打开测试报告,只需执行open test report。您甚至可以同时打开多个文件:opentestreporttest/unit/MyTests.groovy测试将在浏览器中打开HTML测试报告MyTests.groovy测试文本编辑器中的源文件。 TAB completion也适用于create-*命令之后的类名:
如果需要在交互模式运行时运行外部进程,可以使用启动命令!:
注意!(bang)命令,您将获得文件路径自动完成-非常适合在文件系统上操作的外部命令,如'ls'、'cat'、'git'等。 要退出交互模式,请输入exit命令。注意,如果Grails应用程序已经使用run app正常运行,那么它将在交互模式控制台退出时终止,因为JVM将被终止。如果应用程序以forked模式运行(这意味着应用程序在不同的JVM中运行),则会出现一个例外。在这种情况下,应用程序将在交互模式控制台终止后继续运行。如果要退出交互模式并停止以分叉模式运行的应用程序,请使用quit命令。quit命令将停止正在运行的应用程序,然后关闭交互模式。
文档完善中...