Gradle多项目构建

news/2024/5/20 2:17:17 标签: gradle

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."
}

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

3.1 项目布局如下:

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

3.2 各文件内容

gradle">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."
}
*/

gradle">3.2.2 settings.gradle

include 'bluewhale', 'krill'

gradle">3.2.3 bluewhale/build.gradle

hello.doLast {
    println "- I'm the largest animal that has ever lived on this planet."
}

gradle">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.

http://www.niftyadmin.cn/n/823607.html

相关文章

技能UP:SAP CO掌上配置手册

No.配置对象事务代码路径1Enterprise Structure and General Controlling configration Maintain EC-PCA : Controll Area SettingOKE5 Create Dummy PCAKE59 Activate PCA1KEF Maintain PCA plan version IMG-〉CO-〉PCA -〉Planning -〉Basic Setting for Planning -〉P…

python3爬取1024图片

这两年python特别火&#xff0c;火到博客园现在也是隔三差五的出现一些python的文章。各种开源软件、各种爬虫算法纷纷开路&#xff0c;作为互联网行业的IT狗自然看的我也是心痒痒&#xff0c;于是趁着这个雾霾横行的周末瞅了两眼&#xff0c;作为一名老司机觉得还是应该以练带…

atomic_t相关操作

所谓原子操作&#xff0c;就是该操作绝不会在执行完毕前被任何其他任务或事件打断&#xff0c;也就说&#xff0c;它的最小的执行单位&#xff0c;不可能有比它更小的执行单位&#xff0c;因此这里的原子实际是使用了物理学里的物质微粒的概念。原子操作需要硬件的支持&#xf…

四则运算第二次冲刺

这一次冲刺的主要内容是完善我们的界面&#xff0c;是我们的APP界面更规划更标准一点&#xff0c; 然后还要添加一些新算法。 距离客户的需求已经一半了。 代码正在完善中&#xff0c;稍后上传。。。转载于:https://www.cnblogs.com/iliuh/p/5019593.html

springboot(六):如何优雅的使用mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis&#xff0c;虽然个人比较喜欢jpa这种极简的模式&#xff0c;但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和mybatis组合的相关资料&#xff0c;各种各样的形式都有&#xff0c;…

Gradle应用简介

1. 存储库 默认情况下&#xff0c;Gradle不定义任何存储库。我们必须至少明确地定义一个存储库。 2. 显示帮助信息 $ gradle --help 执行 gradle --help 可查看gradle命令语法及各选项意义&#xff0c;如下&#xff1a; $ gradle --helpUSAGE: gradle [option...] [task...]-…

php文件上传参数细节

1&#xff1a;error类型&#xff1a; 1&#xff09;其值为 0&#xff0c;没有错误发生&#xff0c;文件上传成功。 2&#xff09;其值为 1&#xff0c;上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 3&#xff09;其值为 2&#xff0c;上传文件的大小超过了…

六年程序生涯

工作六年对一个程序员意味什么&#xff1f;在职位上&#xff1a;高级开发工程师&#xff1f;架构师&#xff1f;技术经理&#xff1f;or … &#xff1f;在能力上&#xff1a;各种编码无压力&#xff1f;核心代码无压力&#xff1f;平台架构无压力&#xff1f; or … fuck&…