Gradle之使用Gradle的命令行 您所在的位置:网站首页 gradle的使用 Gradle之使用Gradle的命令行

Gradle之使用Gradle的命令行

#Gradle之使用Gradle的命令行| 来源: 网络整理| 查看: 265

列出项目中所有可用的task

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

$ 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 yayGradle0 groupTherapy

任务通常只会执行一次,无论它们是在命令行中指定的还是作为另一个任务的依赖。

毫无意外,和运行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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有