Gradle多项目构建

5 篇文章 0 订阅

1. 多项目构建的结构

  • 在项目的根目录或主目录中都有一个settings.gradle文件。
  • 根目录或主目录都有一个build.gradle文件。
  • 具有自己的*.gradle构建文件的子目录(某些多项目构建可能会省略子项目构建脚本)。

1.1 列出构建文件中的所有项目

$ gradle -q projects

2. 指定常规构建配置

在根项目中的build.gradle文件中,常规配置可以应用于所有项目或仅应用于子项目。

allprojects {
   group = 'com.example.gradle'
   version = '0.1.0'
}

subprojects {
   apply plugin: 'java'
   apply plugin: 'eclipse'
}

Project API提供了一个属性allprojects,它返回当前项目及其下面所有子项目的列表。如果使用闭包调用allprojects,则闭包的语句将委派给与所有项目相关联的项目。当然也可以通过allprojects.each进行迭代,但这将更冗长。

2.1 访问具体某个项目

Gradle允许从构建脚本中访问多项目构建的任何项目。Project API提供了一个名称为project()的方法,它将一个路径作为参数,并返回此路径的Project对象。

如:

project(':bluewhale').hello << {
    println "- I'm the largest animal that has ever lived on this planet."
}

3. 一个Gradle多项目构建示例

3.1 项目布局如下:

water/
    build.gradle
    settings.gradle
    bluewhale/
        build.gradle
    krill/
        build.gradle

3.2 各文件内容

3.2.1 build.gradle
/*
* 注意两个代码片段引用“hello”任务。 
* 第一个,它使用“task”关键字,构建任务并提供它的基本配置。
* 第二部分不使用“task”关键字,因为它进一步配置现有的“hello”任务。
* 只能在项目中构建一次任务,但可以添加任意数量的代码块以提供其他配置。
*/
allprojects {
    task hello << {task -> println "I'm $task.project.name" }
}
subprojects {
    hello << {println "- I depend on water"}
}

// Project API提供了一个名称为`project()`的方法,它将一个路径作为参数,并返回此路径的`Project`对象。
// 通常把项目特定的行为放入这个项目的构建脚本中
/*
project(':bluewhale').hello << {
    println "- I'm the largest animal that has ever lived on this planet."
}
*/
3.2.2 settings.gradle
include 'bluewhale', 'krill'
3.2.3 bluewhale/build.gradle
hello.doLast {
    println "- I'm the largest animal that has ever lived on this planet."
}
4.2.4 krill/build.gradle
hello.doLast {
    println "- The weight of my species in summer is twice as heavy as all human beings."
}

3.3 执行

  在项目根路径下执行

# E:\program\gradleStudy\water
$ gradle -q hello

# 输出:
$ I'm water
I'm bluewhale
- I depend on water
- I'm the largest animal that has ever lived on this planet.
I'm krill
- I depend on water
- The weight of my species in summer is twice as heavy as all human beings.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值