Ubuntu国内安装Gradle
1.简介
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。
2.环境
LInux 发行版本:ubuntu-22.04.3-desktop-amd64.iso
Gradle 版本:7.3.1
Ubuntu Server:https://ubuntu.com/download/serverGradle 官网:https://gradle.org/
Gradle 仓库:https://services.gradle.org/distributions
Gradle - 百科:https://baike.baidu.com/item/Gradle/3066272
nvm-cn Gitee:https://gitee.com/RubyMetric/nvm-cn
Ubuntu启用ROOT用户和配置SSH远程:https://blog.csdn.net/u011424614/article/details/136611371
二、正文
1.安装和配置
- 创建安装目录
mkdir /opt/gradle
cd /opt/gradle
- 下载并解压
wget https://mirrors.cloud.tencent.com/gradle//gradle-7.3.1-bin.zip
unzip -d /opt/gradle gradle-7.3.1-bin.zip
- 配置环境变量
echo "export PATH=$PATH:/opt/gradle/gradle-7.3.1/bin" >> ~/.bashrc
source ~/.bashrc
- 查看版本
gradle -v
- 配置国内镜像
mkdir -p ~/.gradle
nano ~/.gradle/gradle.properties
写入内容
systemProp.http.proxyHost=mirrors.neusoft.edu.cn
systemProp.http.proxyPort=80
systemProp.https.proxyHost=mirrors.neusoft.edu.cn
systemProp.https.proxyPort=80
2.Gradle下载慢
场景:Gradle 项目编译时,依赖下载慢
解决方法:
- 编辑 gradle/wrapper/gradle-wrapper.properties
vim gradle/wrapper/gradle-wrapper.properties
替换下载链接(腾讯镜像)
distributionUrl=https\://mirrors.cloud.tencent.com/gradle//gradle-7.3.1-bin.zip
- 编辑 build.gradle ,配置国内镜像
repositories {
mavenCentral()
maven { url "https://maven.aliyun.com/repository/public" }
maven { url "https://maven.aliyun.com/repository/central" }
maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
maven { url "https://maven.aliyun.com/repository/apache-snapshots" }
}
3.Gradle编译Lombok不生效
场景:IDEA 的项目使用 Gradle 编译 Lombok 的内容时,Lombok 相关的注解无效
解决方法:
- 同时使用 compileOnly 和 annotationProcessor
compileOnly
:这种依赖只会在编译阶段使用,而不会包含在最终的打包文件中。
annotationProcessor
:这种依赖用于处理注解处理器,它会在编译阶段生成额外的代码或者资源文件。
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
4.编码GBK的不可映射字符
场景1:Gradle 编译项目时提示,编码GBK的不可映射字符
场景2:IDEA 控制台输出乱码
解决方法:
- 编辑项目的 build.gradle ,设置 UTF-8 编码
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}