├─gradle
│ ├── build.gradle
│ └── src
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
这是首先考虑的 本项目使用什么版本gradle的控制文件
distributionBase=GRADLE_USER_HOME//这个Base地址和下面的Path拼接起来就是下载的zip文件解压地址
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME//这个Base地址和下面的Path拼接起来就是下载后的gradle文件的存放地址
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip//本项目需要的gradle文件,显示了版本
这个就是用于下载指定版本gradle的jar,它会去gradle-wrapper.properties查询变量然后带入执行
作用类似pom文件
buildscript {
//声明是gradle脚本自身需要使用的资源
repositories {
//代表使用哪个依赖仓库
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
jcenter()
}
dependencies {
//这是一个插件用于打包程序
classpath "com.github.jengelman.gradle.plugins:shadow:2.0.2"
}
}
//shadow插件引用
apply plugin: "com.github.johnrengelman.shadow"
apply plugin: 'java'
//跟编译环境有关 Java1.8
sourceCompatibility = '1.8'
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
jcenter()
}
//代表使用哪个依赖仓库
dependencies {
//老版本使用compile ,新版本使用implementation和api
//是取代之前的compile的,其中api和compile是一样的效果,implementation有所不同,通过implementation依赖的库只能自己库本身访问,
compile "io.vertx:vertx-core:$VERTX_VER"
compile "io.vertx:vertx-web:$VERTX_VER"
compile "ch.qos.logback:logback-classic:${LOGBACK_VER}"
}
//正常情况下,gradle构建的jar包是不包含依赖的,只包含项目源码
//可是有些情况下我们希望JAR包中也包含相关依赖,就要使用这个
shadowJar {
baseName = 'mes-im'
classifier = null
version = null
manifest {
//设置jar的manifest 文件
// 'Main-Class' 指定入口函数
attributes 'Main-Class': 'io.vertx.core.Launcher'
//我使用vertx框架,需要指定Main-Verticle为主vert
attributes 'Main-Verticle': 'MainVerticle'
}
mergeServiceFiles {
include 'META-INF/services/io.vertx.core.spi.VerticleFactory'
}
}