1. 安装环境及先决条件
1.1. 安装环境介绍
-
操作系统版本:
CentOS Linux release 7.8.2003 (Core) -
Java版本:
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
1.2. 先决条件
Gradle可以运行在大多数的操作系统上,例如Linux、MAC、Windows,并且操作系统上要安装Java JDK或JRE版本8或者以上的版本。
如果配置完成请再继续往下做,否则请先配置好JDK环境。
JDK地址:https://www.oracle.com/java/technologies/javase-downloads.html
2. 下载Gradle安装包
从Gradle官网下载最合适您的版本:https://gradle.org/releases/
我们选择手动安装,下载了一个完整版本(包含文件与资料),文件名为:gradle-7.5-all.zip
3. 安装并配置
3.1. 将安装包解压到合适的位置
示例:将gradle安装包解压到 /data
目录:
unzip gradle-7.5-all.zip -d /data
3.2. 配置环境变量
-
编辑
/etc/profile
文件,在文件末尾增加如下内容export GRADLE_HOME=/data/gradle-7.5 # 该路径要包含gradle的bin目录 export PATH=${GRADLE_HOME}/bin:$PATH
-
重新加载,使之生效
source /etc/profile echo $GRADLE_HOME
3.3. 验证是否成功
~]# gradle --version
Welcome to Gradle 7.5!
Here are the highlights of this release:
- Support for Java 18
- Support for building with Groovy 4
- Much more responsive continuous builds
- Improved diagnostics for dependency resolution
For more details see https://docs.gradle.org/7.5/release-notes.html
------------------------------------------------------------
Gradle 7.5
------------------------------------------------------------
Build time: 2022-07-14 12:48:15 UTC
Revision: c7db7b958189ad2b0c1472b6fe663e6d654a5103
Kotlin: 1.6.21
Groovy: 3.0.10
Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM: 1.8.0_161 (Oracle Corporation 25.161-b12)
OS: Linux 3.10.0-1160.53.1.el7.x86_64 amd64
如果出现上面的版本信息,说明成功了,如果没出现请返回前面的,查看检查一下自己的步骤是否存在问题.
3.4. Gradle命令
gradle -v //版本号
gradle clean //清除build文件夹
gradle build //检查依赖并打包
gradle assembleDebug //编译打包Debug包
gradle assembleRelease //编译打包Release包
gradle installRelease //打包并安装Release包
gradle unstallRelease //卸载Release包
gradle dependencies //查看依赖图表
gradle clean build -x test //跳过测试编译
gradle --profile build //分析构建任务
gradle build --dry-run //编译并不执行任务
gradle install //安置项目jar包到本地Maven仓库
gradle tasks //查看Gradle任务
gradle tasks --all //查看所有Gradle任务
gradle build --daemon //使用Gradle守护程序(Daemon)
gradle build --offline //用离线模式运行
gradle clean build --refresh-dependencies //刷新Gradle依赖缓存
3.5. Gradle项目目录结构与Maven项目目录结构对比
说明:
- 只有war工程才有webapp目录,对于普通的jar工程并没有webapp目录
gradlew
与gradlew.bat
执行的指定 wrapper 版本中的 gradle 指令,不是本地安装的gradle指令。如下图所示:
3.6. Wrapper 包装器
Gradle Wrapper
实际上就是对 Gradle 的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本的 Gradle 问题。例如:把自己的代码共享给其他人使用,可能出现如下情况:
- 对方电脑没有安装 Gradle
- 对方电脑安装过 Gradle,但是版本太旧
这时候就可以考虑使用 Gradle Wrapper 了,这也是官方建议使用Gradle Wrapper的原因。实际上有了 Gradle Wrapper 之后,本地是可以不配置 Gradle 的,下载 Gradle 项目后,使用 gradle 项目自带的 wrapper 操作也是可以的。
4. 用Gradle创建普通java项目
4.1. 创建工程
注意:点击完成后,idea会自动去下载Gradle,我们点击右边的取消按钮,将下载取消,配置我们自己下载的Gradle版本。
4.2. 更改三个Gradle设置
Gradle user home:我们在安装Gradle时指定的环境变量 GRADLE_USER_HOME
的值。
- 如果没有新建.gradle这个目录,这里的默认值为
/root/.gradle
- 如果新建.gradle这个目录,但没有设置环境变量,以后每次用Gradle构建工程,都要手动修改此处的值
- 如果新建.gradle这个目录并设置了环境变量
GRADLE_USER_HOME
,idea就能自动探测此处Gradle user home的值了
gradle user home :下载文件的路径
user gradle from :选择本地的gradle路径
gradle jvm:选择本地jdk
4.3. gradle镜像源配置
- 项目配置
repositories {
// 阿里云镜像
maven { url 'https://maven.aliyun.com/repository/public/' }
mavenCentral()
}
- 全局配置
在gradle的安装目录的init.d
目录下(例如:/data/gradle-7.5/init.d
)创建init.gradle
文件,其内容如下:
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter/'
def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
remove repo
}
if (url.startsWith('https://plugins.gradle.org/m2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
maven { url ALIYUN_JCENTER_URL }
maven { url ALIYUN_GOOGLE_URL }
maven { url ALIYUN_GRADLE_PLUGIN_URL }
}
}
4.4. 找回缺失的src目录
创建工程后,发现没有src目录,按下图设置即可:
// 创建缺失的src目录
task createDirs {
sourceSets*.java.srcDirs*.each{
it.mkdirs()
}
sourceSets*.resources.srcDirs*.each{
it.mkdirs()
}
}
4.5. 项目运行
在 src/main/java
目录下新建一个包,再建一个类