【Mac】安装Gradle

news2024/12/4 16:35:45

1、说明

Gradle 运行依赖 JVM,需要先安装JDK,Gradle 与 JDK的版本对应参见:Java Compatibility

IDEA的版本也是有要求Gradle版本的,二者版本对应关系参见:Third-Party Software and Licenses

本次 Gradle 安装版本为 8.11.1,要求JDK8及以上的版本。

未安装JDK的移步:【Java】Linux、Mac、Windows 安装 Oracle JDK

2、安装

2.1 手动安装

  • 下载 Gradle(若无研究源码等其他需求,下载binary即可):

    • 官网下载
    • 国内镜像网站下载
  • 解压下载的.zip 文件

  • 配置环境变量:

    zs@Mac ~ % vim .zshrc
    # GRADLE_USER_HOME 为可选项,用于配置仓库地址,可选择与maven同一个仓库
    export GRADLE_USER_HOME=/Users/zs/App/repository
    export GRADLE_HOME=/Users/zs/App/gradle-8.11.1
    export PATH=$GRADLE_HOME/bin:$PATH
    
    zs@Mac ~ % source .zshrc
    
  • 查看版本:

    gradle -v
    

2.2 使用 homebrew 来安装Gradle

brew install gradle

2.3 通过程序编译安装

在没有安装gradle的情况下,用idea打开gradle项目会自动编译安装,默认会根据项目的 gradle-wrapper.properties 中的配置下载

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

参数说明:

  • distributionBase:下载的 Gradle 压缩包解压后存储的主目录。GRADLE_USER_HOME为环境变量,如果没配置,则默认是用户目录下的.gradle文件夹。
  • distributionPath:相对于 distributionBase的解压后的 Gradle压缩包的路径
  • zipStoreBase:同 distributionBase,只不过是存放 zip压缩包的
  • zipStorePath:同 distributionPath,只不过是存放 zip压缩包的
  • distributionUrl:Gradle发行版压缩包的下载地址。services.gradle.org未必能访问到,可修改地址为 https://mirrors.cloud.tencent.com/gradle/gradle-8.3-bin.zip,gradle版本可自行指定。

3、切换镜像源

./Users/zs/App/gradle-8.11.1/init.d 目录下新建文件 init.gradle,将下边内容拷贝进去。

allprojects {
    repositories { 
        mavenLocal() 
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" } 
        maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" } 
        mavenCentral()
    }
    buildscript {
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' } 
            maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' } 
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}
  • mavenLocal(): 指定使用maven本地仓库,而本地仓库在配置maven时settings文件指定的仓库位置。
    jar包查找顺序:${USER_HOME}/.m2/settings.xml >> ${M2_HOME}/conf/ settings.xml >> USER_HOME/.m2/repository
  • maven {url 地址}:指定maven仓库,一般用私有仓库地址或其它的第三方库【比如阿里镜像仓库地址】。
  • mavenCentral():Maven的中央仓库,无需配置,直接声明就可以使用。
  • jcenter():JCeater 中央仓库,实际也是用maven搭建的,但相比Maven仓库更友好,通过CDN分发,并且支持https访问。在新版本中已经废弃了,替换为了mavenCentral()。

Gradle 可以通过指定仓库地址为本地maven仓库地址和远程仓库地址相结合的方式,避免每次都会去远程仓库下载依赖库。

这种方式也有一定的问题,如果本地maven仓库有这个依赖,就会从直接加载本地依赖,如果本地仓库没有该依赖,那么还是会从远程下载。但是下载的jar不是存储在本地maven仓库中,而是放在自己的缓存目录中,默认在${USER_HOME}/.guade/caches目录,当然如果我们配置过GRADLE_USER_HOME 环境变量,则会放在GRADLE_USER_HOME/caches目录。

gadle caches 无法指向 maven repository,因为 caches 下载的文件不是按照maven仓库中存放的方式。

4、IDEA 集成 Gradle

  • 第一步,IntelliJ IDEA ⇒ Settings ⇒ Plugins ⇒ MarketPlace,输入 gradle,点击 install,安装完成后 重启IDE
    在这里插入图片描述
  • 第二步,File ⇒ New Projects Setup ⇒ Settings for New Projects ⇒ Buil, Execution, Deployment ⇒ Build Tools ⇒ Gradle,将Distribution 切换为 Local installation
    在这里插入图片描述

第一次使用Gradle加载项目会下载较多资源,比较慢,请耐心等待

5、Gradle升级

查看所有可能的警告信息:

$ gradle help --warning-mode=all

升级:

$ gradle wrapper --gradle-version 8.3

9、资料

  • 【Gradle】mac环境安装Gradle及配置
  • 通过gradle开发idea插件,环境版本适配

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2253143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

根据YAML文件创建Conda环境

YAML(全称为YAML Ain’t Markup Language)是一种轻量级的标记语言。在Python中,YAML文件包含conda环境名和依赖,如图所示。 根据yaml文件创建Conda环境 1.切换路径 找到miniAnaconda或Anaconda,打开Anaconda Powersh…

【分组去重】.NET开源 ORM 框架 SqlSugar 系列

💥 .NET开源 ORM 框架 SqlSugar 系列 🎉🎉🎉 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…

故障诊断 | Transformer-LSTM组合模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | Transformer-LSTM组合模型的故障诊断(Matlab) 源码设计 %% 初始化 clear close all clc disp(此程序务必用2023b及其以上版本的MATLAB!否则会报错!) warning off %

亚马逊云(AWS)使用root用户登录

最近在AWS新开了服务器(EC2),用于学习,遇到一个问题就是默认是用ec2-user用户登录,也需要密钥对。 既然是学习用的服务器,还是想直接用root登录,下面开始修改: 操作系统是&#xff1…

Android笔记【12】脚手架Scaffold和导航Navigation

一、前言 学习课程时,对于自己不懂的点的记录。 对于cy老师第二节课总结。 二、内容 1、PPT介绍scaffold 2、开始代码实操 先新建一个screen包,写一个Homescreen函数,包括四个页面。 再新建一个compenent包,写一个displayText…

HookVip4.0.3 | 可解锁各大应用会员

HookVip是一款可以解锁会员的模块工具,需要搭配相应框架结合使用。这款插件工具支持多种框架如LSPosed、LSPatch、太极、应用转生等,并且完全免费,占用内存小。支持的软件包括now要想、神奇脑波、塔罗牌占卜、爱剪辑、人人视频、咪萌桌面宠物…

猎板 PCB特殊工艺:铸就电子行业核心竞争力新高度

在当今竞争激烈且技术驱动的电子制造领域,印制电路板(PCB)作为电子产品的关键基石,其特殊工艺的发展水平直接影响着整个行业的创新步伐与产品品质。猎板 PCB 凭借在厚铜板、孔口铺铜、HDI 板、大尺寸板以及高频高速板等特殊工艺方…

【教学类-43-25】20241203 数独3宫格的所有可能-使用模版替换(12套样式,空1格-空8格,每套510张,共6120小图)

前期做数独惨宫格的所有排列,共有12套样式,空1格-空8格,每套510张,共6120小图) 【教学类-43-24】20241127 数独3宫格的所有可能(12套样式,空1格-空8格,每套510张,共6120…

Redis+Caffeine 多级缓存数据一致性解决方案

RedisCaffeine 多级缓存数据一致性解决方案 背景 之前写过一篇文章RedisCaffeine 实现两级缓存实战,文章提到了两级缓存RedisCaffeine可以解决缓存雪等问题也可以提高接口的性能,但是可能会出现缓存一致性问题。如果数据频繁的变更,可能会导…

echarts地图立体效果,echarts地图点击事件,echarts地图自定义自定义tooltip

一.地图立体效果 方法1:两层地图叠加 实现原理:geo数组中放入两个地图对象,通过修改zlevel属性以及top,left,right,bottom形成视觉差 配置项参考如下代码: geo: [{zlevel: 2,top: 96,map: map,itemStyle: {color: #091A51ee,opacity: 1,borderWidth: 2,borderColor: #16BAFA…

D87【python 接口自动化学习】- pytest基础用法

day87 pytest运行参数 -m -k 学习日期:20241203 学习目标:pytest基础用法 -- pytest运行参数-m -k 学习笔记: 常用运行参数 pytest运行参数-m -k pytest -m 执行特定的测试用例,markers最好使用英文 [pytest] testpaths./te…

总结拓展十七:特殊采购业务——委外业务

SAP中委外采购业务,又称供应商分包(或外协、转包、、外包、托外等),是企业将部分生产任务委托给外部供应商/集团其他分子公司完成的一种特殊采购业务模式。 委外业务主要有2大类型,分别是标准委外(委外采购…

ESP8266作为TCP客户端或者服务器使用

ESP8266模块,STA模式(与手机搭建TCP通讯,EPS8266为服务端)_esp8266作为station-CSDN博客 ESP8266模块,STA模式(与电脑搭建TCP通讯,ESP8266 为客户端)_esp8266 sta 连接tcp-CSDN博客…

ATTCK红队评估实战靶场(四)

靶机链接:http://vulnstack.qiyuanxuetang.net/vuln/detail/6/ 环境搭建 新建两张仅主机网卡,一张192.168.183.0网段(内网网卡),一张192.168.157.0网段(模拟外网网段),然后按照拓补…

C 语言 “神秘魔杖”—— 指针初相识,解锁编程魔法大门(一)

文章目录 一、概念1、取地址操作符(&)2、解引用操作符(*)3、指针变量1、 声明和初始化2、 用途 二、内存和地址三、指针变量类型的意义1、 指针变量类型的基本含义2、 举例说明不同类型指针变量的意义 四、const修饰指针1、co…

封装loding加载动画的请求

图片 /*** Loading 状态管理类*/ export class Loading {constructor(timer300) {this.value falsethis.timer timer}/*** 执行异步操作并自动管理 loading 状态* param {Promise|Function|any} target - Promise、函数或其他值* returns {Promise} - 返回请求结果*/async r…

人形机器人训练、机器臂远程操控、VR游戏交互、影视动画制作,一副手套全部解决!

广州虚拟动力基于自研技术推出了多节点mHand Pro动捕数据手套,其最大的特点就是功能集成与高精度捕捉,可以用于人形机器人训练、机器臂远程操控、VR游戏交互、影视动画制作等多种场景。 一、人形机器人训练 mHand Pro动捕数据手套双手共装配16个9轴惯性…

Nginx Web服务器管理、均衡负载、访问控制与跨域问题

Nginx Web 服务器的均衡负载、访问控制与跨域问题 Nginx 的配置 1. 安装Nginx 首先安装Nginx apt install nginx -ycaccpurgatory-v:~$ sudo apt install nginx [sudo] password for cacc: Reading package lists... Done Building dependency tree... Done Reading state i…

Bert+CRF的NER实战

CRF(条件随机场-Conditional Random Field) 原始本文:我在北京吃炸酱面 标注示例(采用BIO标注方式): 我O在O北B-PLA京I-PLA吃O炸B-FOOD酱I-FOOD面I-FOOD CRF: 目的:提出一些不可能…

C++语法·识

人生建议:请手机反省一下,为什么总拉着我熬夜。 目录 STL简介 string类容器一 auto(自动声明类型) 简介: 特点 范围for(语法糖) 简介 特点 string string类的常见接口 1.构造 2.容…