gradle入门(1-2)gradle的依赖管理
Gradle支持以下仓库格式:
- Ivy仓库
- Maven仓库
- Flat directory仓库
一、添加仓库
1、添加Ivy仓库
1.1、通过URL地址添加一个Ivy仓库
我们可以将以下代码片段加入到build.gradle文件中:
1.2、通过本地文件系统地址添加一个Ivy仓库
2、添加maven仓库
2.1、通过URL地址添加一个Maven仓库
我们可以将以下代码片段加入到build.gradle文件中:
2.2、通过本地文件系统地址添加一个Maven仓库
我们可以将以下代码片段加入到build.gradle文件中:
在加入Maven仓库时,Gradle提供了三种“别名”供我们使用,它们分别是:
- mavenCentral()别名,表示依赖是从Central Maven 2 仓库中获取的。
- jcenter()别名,表示依赖是从Bintary’s JCenter Maven 仓库中获取的。
- mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的。
如果我们想要将Central Maven 2 仓库加入到构建中,我们必须在build.gradle文件中加入以下代码片段:
3、添加Flat Directory仓库
如果想要使用Flat Directory仓库,我们需要将以下代码片段加入到build.gradle文件中:
这意味着系统将在lib目录下搜索依赖,
同样的,如果你愿意的话可以加入多个目录,代码片段如下:
二、引入依赖
Java插件指定了若干依赖配置项,其描述如下:
- 当项目的源代码被编译时,compile配置项中的依赖是必须的。
- runtime配置项中包含的依赖在运行时是必须的。
- testCompile配置项中包含的依赖在编译项目的测试代码时是必须的。
- testRuntime配置项中包含的依赖在运行测试代码时是必须的。
- archives配置项中包含项目生成的文件(如Jar文件)。
- default配置项中包含运行时必须的依赖。
最普遍的依赖称为外部依赖,这些依赖存放在外部仓库中。一个外部依赖可以由以下属性指定:
- group属性指定依赖的分组(在Maven中,就是groupId)。
- name属性指定依赖的名称(在Maven中,就是artifactId)。
- version属性指定外部依赖的版本(在Maven中,就是version)。
这些属性在Maven仓库中是必须的,如果你使用其他仓库,一些属性可能是可选的。
打个比方,如果使用Flat directory仓库,只需要指定名称和版本。
我们假设我们需要指定以下依赖:
- 依赖的分组是foo。
- 依赖的名称是foo。
- 依赖的版本是0.1。
- 在项目编译时需要这些依赖。
我们可以将以下代码片段加入到build.gradle中,进行依赖声明:
我们也可以采用一种快捷方式声明依赖:[group]:[name]:[version]。如果我们想用这种方式,我们可以将以下代码段加入到build.gradle中:
我们也可以在同一个配置项中加入多个依赖,传统的方式如下:
如果采用快捷方式,那可以是这样:
自然地,声明属于不同配置项的依赖也是可以的。比如说,如果我们想要声明属于compile和testCompile配置项的依赖,可以这么做:
compile group: 'foo', name: 'foo', version: '0.1'
testCompile group: 'test', name: 'test', version: '0.1'
}
快捷方式
三、附录 - 引入阿里云的maven仓库
感谢阿里云!
找到gradle的配置文件路径,例如Windows中的路径为C:\Users\${你的用户名}\.gradle
新建一个文件名为init.gradle,用记事本或者类似的编辑器打开,输入以下内容:
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}
再执行gradle build的时候,你能看到下载地址切换到阿里云了,终于不用漫长的等待了。
gradle入门(1-2)gradle的依赖管理的更多相关文章
- Gradle入门(4):依赖管理
在现实生活中,要创造一个没有任何外部依赖的应用程序并非不可能,但也是极具挑战的.这也是为什么依赖管理对于每个软件项目都是至关重要的一部分. 这篇教程主要讲述如何使用Gradle管理我们项目的依赖,我们 ...
- Gradle for Android 第三篇( 依赖管理 )
依赖管理 这会是一个系列,所以如果你还没有看我之前的几篇文章,请先查看以下文章: Gradle for Android 第一篇( 从 Gradle 和 AS 开始 ) Gradle for Andro ...
- 【转载】Gradle for Android 第三篇( 依赖管理 )
依赖管理是Gradle最闪耀的地方,最好的情景是,你仅仅只需添加一行代码在你的build文件,Gradle会自动从远程仓库为你下载相关的jar包,并且保证你能够正确使用它们.Gradle甚至可以为你做 ...
- Gradle 1.12用户指南翻译——第五十章. 依赖管理
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...
- Spring mvc 4系列教程(二)——依赖管理(Dependency Management)和命名规范(Naming Conventions)
依赖管理(Dependency Management)和命名规范(Naming Conventions) 依赖管理和依赖注入(dependency injection)是有区别的.为了将Spring的 ...
- Java Gradle入门指南之依赖管理(添加依赖、仓库、版本冲突)
开发任何软件,如何管理依赖是一道绕不过去的坎,软件开发过程中,我们往往会使用这样那样的第三方库,这个时候,一个好的依赖管理就显得尤为重要了.作为一个自动构建工作,Gradle对依赖管理有着很好 ...
- 【系列教程1】Gradle入门系列三:依赖管理
在现实生活中,要创造一个没有任何外部依赖的应用程序并非不可能,但也是极具挑战的.这也是为什么依赖管理对于每个软件项目都是至关重要的一部分. 这篇教程主要讲述如何使用Gradle管理我们项目的依赖,我们 ...
- 在Eclipse中使用建立使用Gradle做依赖管理的Spring Boot工程
前述: Gradle存在很长时间了,以前只知道Maven和ivy ,最近才知道有这个存在,因为以后要用这个了; 所以,要先学会怎么用这个工具,就从建立一个简单工程开始! 实际上以前是见过Gradle的 ...
- Gradle Maven 依赖管理
仓库管理简介 本质上说,仓库是一种存放依赖的容器,每一个项目都具备一个或多个仓库. Gradle支持以下仓库格式: Ivy仓库 Maven仓库 Flat directory仓库 我们来看一下,对于每一 ...
- Liferay7 BPM门户开发之43: Gradle依赖管理
进入liferay v7.0,官方推荐使用Gradle进行依赖管理和发布,所以必须知道Gradle的用法,网上资料很多,不赘述 只写依赖管理的分类 一般用外部仓库依赖,也可以用本地文件依赖(依赖本地j ...
随机推荐
- Java基础知识回顾之一 ----- 基本数据类型
前言 在开始工作至今,学习各种各样的技术之中发现自己的很多Java的基础知识都忘了⊙﹏⊙b汗... 而且越是学习越是发现Java基础的重要性,所以准备单独抽一下时间进行Java基础的重新学习.在重新学 ...
- sys模块和序列化模块
import sysprint(sys.version) #查看当前pycharm版本print(sys.path )#返回模块的搜索路径print(sys.platform )#返回操作系统的版本p ...
- nginx里的sticky的作用
1.Sticky工作原理 : Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识 ...
- 线程池ThreadPoolExecutor源码解读研究(JDK1.8)
一.什么是线程池 为什么要使用线程池?在多线程并发开发中,线程的数量较多,且每个线程执行一定的时间后就结束了,下一个线程任务到来还需要重新创建线程,这样线程数量特别庞大的时候,频繁的创建线程和销毁线程 ...
- IE 兼容 getElementsByClassName
getElementsByClassName 通过class获取节点,是很多新人练习原生JS都用到的,项目中也会写,当项目进行到一定程度时,测试IE低版本,忽然发现不支持的时候,瞬间感觉整个人都不好了 ...
- 解决Centos7本机时间与实际时间相差8小时
# timedatectl Local -- :: CST Universal -- :: UTC #相差8小时 RTC -- :: Time zone: Asia/Shanghai (CST, +) ...
- TypeScript入门(三)面向对象特性
一.类(Class) 类是ts的核心,使用ts开发时,大部分代码都是写在类里面. 1.类的声明 多个对象有相同的属性和方法,但是状态不同. 声明类的属性和方法时可以加 访问控制符,作用是:类的属性和方 ...
- 手把手的SpringBoot教程,SpringBoot创建web项目(五)
这一节,我们来演示如何在SpringBoot项目中连接数据库,并且自动创建一张表. 按照惯例,数据库我们依然使用mysql,至于什么是jpa呢? jpa是sun推出的持久化规范(java persis ...
- Vue解析五之mounted
在mounted获得vue的实例要加 this.$nextTick(function () { // 代码保证 this.$el 在 document 中 }) mounted: function ( ...
- C语言中数据类型的取值范围
C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...