Gradle之使用Gradle的命令行

列出项目中全部可用的taskweb

在上一blog中展现了如何经过gradle命令运行一个指定的task。要运行一个task,须要知道它的具体名字。如何能够在不用看源代码的状况下知道全部可用的task,是否是很棒?Gradle提供了一个叫做tasks的帮助任务来帮助你查看构建脚本和显示每一个可使用的task,包括描述该task做用的信息。以quiet模式运行gradle tasks的输入结果以下:shell

$ gradle -q tasks

关于输出,有几点须要说明。Gradle提供了任务组的概念,你能够把它看做是多个task的集群。每一个构建脚本都会默认暴露Help tasks任务组若是某个task不属于一个任务组,那么它就会显示在Other tasks中。在这里能够找到groupTherapy任务。之后咱们会学习如何把task添加到一个任务组中。缓存

你能够会想,在构建脚本中定义的其余task去哪了?在输出的底部,你会看到一条提示,要得到关于task的更多信息,请使用--all选项网络

$ gradle -q tasks --all

--all选项是查看task执行顺序的好办法,为了有更好的可读性,依赖任务以缩进方式有序地显示在根task的下面。学习

任务执行gradle

在以前的例子中,经过给命令gradle添加一个参数来执行指定的任务。Gradle的命令行实现会确保任务以及它们的全部依赖都被执行。你也能够在命令行中经过参数定义,一次执行多个任务。如例:ui

$ gradle yayGradle0 groupTherapy

任务一般只会执行一次,不管它们是在命令行中指定的仍是做为另外一个任务的依赖。spa

毫无心外,和运行gradle groupTherapy时的输出同样。正确的顺序被保存而且每一个任务只执行一次插件

任务名字缩写命令行

Gradle最有用的特性之一就是可以以驼峰式的缩写在命令行上运行任务。若是你想要以缩写方式运行以前的例子,则只须要输入以下示例:

$ gradle gT
$ gradle yG0

当你要运行名字特别长的任务或者多个任务参数时,这个特性很是有用。注意:任务名字的缩写必须是惟一的,Gradle才能找到相应的任务。

在执行时排除一个任务

有时候你想要在构建运行时排除一个指定任务。Gradle提供了一个命令行选项 -x 来实现。假设你想要排除任务yayGradle0:

$ gradle groupTherapy -x yayGradle0

Gradle排除了任务yayGradle0和它的依赖任务startSession,这个概念叫作智能排除

命令行选项

咱们来探索最重要的通用命令行选项,控制构建脚本日志级别的标志位,以及给项目提供参数的方法。Gradle命令容许你同时定义一个或者多个选项。假设你想要将日志级别改变到INFO,则可使用 -i 选项,或者若是想要打印出在执行期间发生错误时的堆栈踪影信息,则可使用 -s 选项。例如:

$ gradle groupTherapy -is
#或者
$ gradle groupTherapy -i-s

正如你所看到的,能够轻松地组合多个命令行选项。经过 -h 选项,你能够看到全部可用的选项:

$ gradle -h

举几个重要的例子:

  • -?,-h,--help:打印出全部可用的命令行选项,包含描述信息。

  • -b,--build-file:Gradle构建脚本的默认命名约定是build.gradle。使用这个命令行选项能够执行一个特定名字的构建脚本(好比,gradle -b test.gradle)。

  • --offline:一般,构建中声明的依赖必须在离线仓库中存在才可用。若是这些依赖在本地缓存中没有,那么运行在一个没有网络链接环境中的构建都会失败。使用这个选项可让你以离线模式运行构建仅仅在本地缓存中检查依赖是否存在

参数选项

  • -D,--system-prop:Gradle是以一个JVM进程运行的。和全部的Java进程同样,你能够提供一个系统参数,就像-Dmyprop=myvalue这样。

  • -P,--project-prop项目参数构建脚本可用的变量。你可使用这个选项直接向构建脚本中传入参数(好比:-Pmyprop=myvalue)。

日志选项

  • -i,--info:在默认设置中,Gradle构建不会提供大量的输出信息。经过这个选项能够将Gradle的日志级别改变到INFO以得到更多信息。若是你想要知道构建中发生了什么,这个选项很是有用。

  • -s,--stacktrace:若是构建在运行中出现错误,你会想要知道错误是从哪里开始的。-s选项在有异常抛出时会打印出简短的堆栈跟踪信息,帮助你进行调度。

  • -q,--quiet:减小构建出错时打印出来的错误日志信息。

帮助任务

  • tasks:显示项目中全部可运行的task,包括它们的描述信息。项目中应用的插件可能会提供一些额外的task。

  • properties:显示出项目中全部可用的属性。某些属性是由Gradle的project对象提供的,project对象是一个构建的本质表现形式。其余的属性都是用户定义的,要么来自于属性文件或者命令行选项,要么是直接在构建构建脚本中定义的。

Gradle守护进程

当Gradle成为平常工做的一部分时,你会发现须要重复地运行构建。若是你在一个web应用上工做,就更是如此。无论哪一种方式,你都会发现效率很重要。每次初始化一个构建时,JVM都要启动一次,Gradle的依赖要载入到类加载器中,还要创建项目对象模型。这个过程须要花上好几秒。Gradle守护进程是这个问题的救星。

守护进程之后台进程方式运行Gradle。一旦启动,gradle命令就会在后续的构建中重用以前建立的守护进程,以免启动时形成的开销。在个人机器上,成功地完成运行groupTherapy任务要花上3秒钟。咱们但愿提升启动和执行的效率。在命令行中启动Gradle守护进程很简单,在运行gradle命令时加上 --daemon 选项。示例:

$ gradle groupTherapy --daemon

为了验证守护进程在运行,你能够查看系统进程列表:

$ ps aux | grep gradle

后续触发的gradle命令都会重用守护进程。记住,守护进程只会被建立一次,即使你在命令行中加了 --daemon 选项。守护进程会在3小时空间时间以后自动过时。任什么时候候你均可以选择在执行构建时不使用守护进程,只须要添加命令行选项 --no-daemon 便可:

$ gradle groupTherapy --no-daemon

手动中止守护进程,能够执行:

$ gradle --stop
相关文章
相关标签/搜索