Gradle 生态系统分析

本文介绍了Gradle的源码结构,重点关注Gradle脚本的编译与调用过程。从".gradle"文件的性质出发,讨论了Groovy的元对象协议(MOP)在脚本运行时的作用。文章详细阐述了Gradle如何编译和运行脚本,包括settings.gradle和build.gradle的处理,以及动态对象在函数调用中的关键角色。
摘要由CSDN通过智能技术生成

Gradle 起底 第一篇

亦余心之所善兮,虽九死其犹未悔

Gradle 的源代码地址 https://github.com/gradle/gradle ,可以看到Gradle的源码里(基于 Gradle 大版本的 version 6)java 占比44% Groovy 占比46%,源码里面大部分的核心代码核心模块都是java 语言编写,test 代码主要是由Groovy语言编写。

language.PNG

目录结构

往往高端的代码都以一种朴素的呈现方式,以gradle-6.3-all 为例,解压之后目录结构如下:


***bin

*****gradle(unix and linux 启动脚本)

*****gradle.bat(windows 启动脚本)

***docs

***init.d(自定义的init.gradle 位置)

***lib(编译好的jar包)

***src(源码)

**LICENSE

**NOTICE

**README

启动Gradle就是从bin 目录下的启动脚本文件触发到lib目录下的jar里的某个java的main函数。以gradle.bat 为例,其中最终调用的位置如下:入口类是org.gradle.launcher.GradleMain。

"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.launcher.GradleMain %CMD_LINE_ARGS%

如果这个时候继续跟着这个GradleMain深入阅读源码的话,很快就会陷入一堆细节,所以在这里就不继续深入了。

Gradle 脚本文件

那我们换个方向来再去观察 Gradle 。".gradle" 文件是一个很好的入手点:


apply plugin: 'java'

...

dependencies {

    compile 'org.c
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值