Gradle ——Gradle安装与配置

news/2024/5/20 2:34:02 标签: java, gradle, idea, maven, app

目录

一、简介

二、功能和特点

三、安装


参考:

Gradle_百度百科

Gradle 学习 ----Gradle 入门_你若不离不弃,我必生死相依的博客-CSDN博客

还有硬石科技的开源wifiAPP程序,没找到他们的码仓

一、简介

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。

面向Java应用为主。当前其支持的语言C++、Java、Groovy、Kotlin、Scala和Swift,计划未来将支持更多的语言。

Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

二、功能和特点

Ø gradle对多工程的构建支持很出色,工程依赖是gradle的第一功能。

Ø gradle支持局部构建。

Ø 支持多方式依赖管理:包括从maven远程仓库、nexus私服、ivy仓库以及本地文件系统的jars或者dirs

Ø gradle是第一个构建集成工具,与ant、maven、ivy有良好的相容相关性。

Ø 轻松迁移:gradle适用于任何结构的工程,你可以在同一个开发平台平行构建原工程和gradle工程。通常要求写相关测试,以保证开发的插件的相似性,这种迁移可以减少破坏性,尽可能的可靠。这也是重构的最佳实践。

Ø gradle的整体设计是以作为一种语言为导向的,而非成为一个严格死板的框架。

Ø 免费开源

1. 一种可切换的,像maven一样的基于约定的构建框架,却又从不锁住你(约定优于配置)

2. 强大的支持多工程的构建

3. 强大的依赖管理(基于Apache Ivy),提供最大的便利去构建你的工程

4. 全力支持已有的Maven或者Ivy仓库基础建设

5. 支持传递性依赖管理,在不需要远程仓库和pom.xml和ivy配置文件的前提下

6. 基于groovy脚本构建,其build脚本使用groovy语言编写

7. 具有广泛的领域模型支持你的构建

三、安装

Gradle官网:Gradle Build Tool
Gradle官方下载安装教程页面:Gradle | Installation
Gradle官方用户手册:Gradle User Manual

我们需要匹配版本,在官网找,我的idea22.2匹配的是Gradle7.4

Third Party Software and Licenses - JetBrains 

检查一下java版本只要比1.8高就行

Gradle | Releases

然后按照官方的指引找到我们需要的版本 

 左面是进二进制源文件,右面是带文档的,我们学习肯定要选后面

推荐用迅雷能快很多

下载完成后解压到随便一个目录

然后配置环境变量

 这两个是我们解压gradle的bin目录的上一层,上多层也行,但是下面path就要多写几层一直指定到bin

 

 

 GRADLE的本地仓库地址和maven保持一致,参考自己的。

检查一下成功咯

 

和配置Maven一样配置一下这里

 

硬石的开源手机wifiAPP这里有报错我注释掉试试

Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id 'com.android.application' not found.
 还是会报错

后面再深入学习吧,因为我是干嵌入式的主要就是了解一下做点和嵌入式相关的测试工具,或者做点小玩具不打算深学,先以这个程序为基础研究一下。

 

再下载的gradle下找到init.d文件夹

然后写入一下内容

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/' }
        }
    }

使他生效的方法有四种

1.在命令行指定文件,例如:gradle --init-script yourdir/init.gradle -q taskName。你可以多次输入此命令来指定多个init文件
2.把init.gradle文件放USER_HOME/.gradle/ 目录下
3. 把以.gradle结尾的文件放到 USER_HOME/.gradle/init.d/ 目录下
4. 把以.gradle结尾的文件放到 GRADLE_HOME/init.d/ 目录下

如果存在上面的4种方式的2种以上,gradle会按上面的1-4序号依次执行这些文件,如果给定目录下存在多个init脚本,会按拼音a-z顺序执行这些脚本,每个init脚本都存在一个对应的gradle实例,你在这个文件中调用的所有方法和属性,都会委托给这个gradle实例,每个init脚本都实现了Script接口。

上面配置的位置不对。指定maven仓库位置是指定maven的位置而不是仓库的位置

 mavenLocal():
指定使用maven本地仓库,而本地仓库在配置maven时settings文件指定的仓库位置。如E:/repository,gradle
查找jar包顺序如下:USER_HOME/.m2/settings.xml >>
M2_HOME/conf/settings.xml >>
USER_HOME/.m2/repository

貌似没问题了

慢慢重头学吧,不能一口气吃成胖子。 


http://www.niftyadmin.cn/n/345142.html

相关文章

python 绘制箱型图一些技巧

引言 本篇是之前有一个需求,需要用python来画箱型图,但要求很多,所以我也不断再版,今天突然想起来这个东西可以总结一下,正好马上得思考下一步做啥了,有足够的空闲时间,所以准备把一些基础概念…

【中间件】通过 docker-compose 快速部署 Kafka 保姆级教程

文章目录 一、概述二、前期准备1)部署 docker2)部署 docker-compose 三、创建网络四、安装 Zookeeper五、Kafka 编排部署1)下载 Kafka2)配置3)启动脚本 bootstrap.sh4)构建镜像 Dockerfile5)编排…

Ribbon默认负载均衡规则替换为NacosRule

近期博主在参与一个 Spring Cloud 搭建,版本为 Hoxton.SR12,服务注册发现组件为 Nacos 的老项目时,发现项目负载均衡组件 Ribbon 的负载均衡规则在某些场景下不够完美,比如新版本上线,需要重启服务。因此写了这边文章与…

室内外融合定位UWB信标定位方案

大家好,我是北京华星智控公司小智,今天我给大家介绍室内外融合定位系统方案,该方案室外采用北斗卫星定位技术室内采用UWB定位技术从而实现室内外精确定位无缝切换,实现室内外的融合定位。 室内外融合定位系统, 该方案…

chatgpt赋能Python-python88

Python88 简介 Python88 是一个优秀的 Python 开源库,它提供了许多有用的函数和工具,可用于创建高效的 Web 应用程序,简化数据分析、数据可视化以及机器学习和人工智能任务等。 Python88 帮助开发人员以更简单、更快捷的方式编写代码&#…

Flutter控件之Tab选项卡封装

Tab选项卡,这是一个非常常见且权重很高的一个组件,随便打开一个App,比如CSDN,如下图,首页顶部就是一个Tab选项卡,这个功能可以说,几乎每个App都会存在。 在Android中,我们可以使用Ta…

16款ChatGPT工具,太炸裂了,收藏!

1.ChatGPT for google 一个浏览器插件,可搭配现有的搜索引擎来使用。 最大化搜索效率,对搜索体验的提升相当离谱: 安装完插件后,在搜索引擎搜索任何问题,都能获取两份答案。 左边是谷歌抓取的全网资源,右…

socket | 网络套接字、网络字节序、sockaddr结构

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…