gradle构建脚本基础

1. gradle常用命令

//列出项目的所有属性. 这样你就可以看到插件加入的属性以及它们的默认值.
gradle properties

//列出项目的所有任务
gradle -q tasks --all
//列出所有项目
gradle -q project

2. 字符串

  1. ' ' 仅仅表示一个字符串

  2. " " 字符串拼接,可以拼接变量${变量},也可以拼接任务$$任务

  3. ''' ''' 可以用来换行

3. 定义常量

一个项目对应一个project实例,gradle根据build.gradle配置内容实例化project实例

project属性有group,name,version

方法有apply ,repositories,dependencies,task

属性的其他配置方式可以通过 : ext , gradle.properties

4. 定义任务

快捷的定义方式,使用<< 代替 doLast{}

<< 操作符是 doLast 的简单别称.

默认任务定义,调用任何任务都会执行的任务,没有<< 也米有doLast{}

声明任务之间的依赖

intro 依赖于 hello, 所以执行 intro 的时候 hello 命令会被优先执行来作为启动 intro 任务的条件.

在加入一个依赖之前, 这个依赖的任务不需要提前定义

动态任务

下面的times是遍历,counter是遍历的变量名

5. 使用插件

6. 使用仓库

7. 添加依赖

8. 定制项目

9. 上传jar包

也可以使用maven-publish插件

10. 多项目构建

11. 项目之间的依赖

12. 解决版本冲突

  1. 查看依赖报告

  2. 排除传递性依赖

  3. 强制指定一个版本

groovy默认使用最高版本帮助我们解决版本冲突

13. 多项目构建-公共配置

allprojects对所有的项目有效

subprojects对所有的项目有效也可以个性化定制

属性也可以定义在gradle.properties

14. 多项目构建-独享配置

在父项目bulid.gradle中配置子项目

15. 多项目构建-多环境配置

http://www.infoq.com/cn/articles/Gradle-application-in-large-Java-projects/

15-1. 通过指定不同的资源文件目录

https://github.com/someok/gradle-multi-project-example

  • resources: 通用配置放在这儿

  • resources-dev: 开发环境配置

  • resources-prod: 生产环境配置

  • gradle war: 这个是用来打测试的 war 包,采用的是 resources-dev。

  • gradle release: 这个才是用来打生产用的 war 包,采用的是 resources-prod。

15-2. 传统的properties文件

15-3. config.groovy配置文件

16. 构建脚本的依赖

除了项目需要依赖之外,构建脚本本身也可以有自己的依赖。当使用一个非Gradle官方提供的插件时,就需要在构建脚本里指定其依赖,当然还需要指定该插件的Repository。在Gradle中,使用buildscript块为构建脚本配置依赖。

比如在项目中使用cucumber-JVM作为项目BDD工具,而Gradle官方没有提供它的插件,好在开源社区有人提供cucumber的插件。在构建脚本中添加如下代码:

17. apply其他Gradle文件

当一个项目很复杂的时候,Gradle脚本也会很复杂,除了将子项目的配置移到对应项目的构建脚本之外,还可以可以按照不同的功能将复杂的构建脚本拆分成小的构建脚本,然后在build.gradle里使用apply from,将这些小的构建脚本引入到整体的构建脚本中去。比如在一个项目中既使用了Jetty,又使用了Cargo插件启动JBoss,就可以把他们分别提到jetty.gradle和jboss.gradle,然后在build.gradle里使用如下的代码将他们引入进来:

18. 定义资源目录

19. gradle三大脚本

Type of script

Delegates to instance of

脚本名称

脚本位置

Build script

Project

build.gradle

项目路径下

Init script

Gradle

xxx.gradle 例如buildScan.gradle

init.d

Settings script

Settings

settings.gradle

root项目下

  1. 全局配置 : 在gradle安装目录下../gradle-3.5/init.d

  2. 用户配置 : 在用户主目录下../.gradle/init.d

20. -P和-D

在命令行中通过-D或者-P给Gradle实时创建属性。 -D属性会被传送给启动Gradle的jvm,作为一个系统属性被jvm使用。-P属性则会被直接加载到Gradle领域对象上。

Last updated

Was this helpful?