Gradle 起底 第一篇
亦余心之所善兮,虽九死其犹未悔
Gradle 的源代码地址 https://github.com/gradle/gradle ,可以看到Gradle的源码里(基于 Gradle 大版本的 version 6)java 占比44% Groovy 占比46%,源码里面大部分的核心代码核心模块都是java 语言编写,test 代码主要是由Groovy语言编写。
目录结构
往往高端的代码都以一种朴素的呈现方式,以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