一个项目中只放置一个build.gradle,build.gradle可以理解为一个Project框架,提供了对一个项目的基本配置。

project的常用:

属性:

  1. group
  2. name(artifact)
  3. version 项目版本(全局的)
  4. sourceCompatibility = 1.8                     // source使用的jdk版本
  5. targetCompatibility = 1.8                     // 编译时使用的jdk版本或者更新的java虚拟机兼容
  6. compileJava.options.encoding = 'UTF-8'
  7. compileTestJava.options.encoding = 'UTF-8'

方法:

  1. apply 应用插件
  2. dependencies 添加依赖
  3. repositories 添加仓库
  4. task 定义任务
  5. buildscript
  6. allprojects
  7. subprojects
  8. configurations

gradle中的repositories

//repositories是project一个方法,闭包作为参数
repositories {mavenCentral()
}

这个是用来指定使用什么库的,它可以存在buildScript块、allprojects块、根级别块。

buildScript块的repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件。

根级别的repositories主要是为了当前项目提供所需依赖包,比如log4j、spring-core等依赖包可从mavenCentral仓库获得。

allprojects块的repositories用于多项目构建,为所有项目提供共同所需依赖包。而子项目可以配置自己的repositories以获取自己独需的依赖包。

gradle中的常用属性可以写在gradle.properties中

一个gradle文件中的属性有很多,比如 jdk版本,编码类型,dependency 版本。如果都放在 build.gradle 中势必不好管理哦(经验哦),那么gradle默认提供了一个 gradle.properties 文件。用这个文件来管理所有的属性在合适不过了

Gradle 插件(Plugins)

Gradle 也可以用下面的方式声明使用的插件:

// build.gradle
plugins {id 'com.example.plugin', version '1.0'
}

其实是从 Gradle 官方的插件仓库 https://plugins.gradle.org/m2/ 下载的。

但是,众所周知的原因,某些地区会连不上,导致下载不到需要的插件,例如出现如下错误:

* What went wrong:
A problem occurred configuring root project 'MyApp'.
> Could not resolve all files for configuration ':classpath'.> Could not download jimfs.jar (com.google.jimfs:jimfs:1.1)> Could not get resource 'https://plugins.gradle.org/m2/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar'.> Could not HEAD 'https://plugins.gradle.org/m2/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar'.> Connect to d29vzk4ow07wi7.cloudfront.net:443 [d29vzk4ow07wi7.cloudfront.net/54.192.84.6, d29vzk4ow07wi7.cloudfront.net/54.192.84.168, d29vzk4ow07wi7.cloudfront.net/54.192.84.128, d29vzk4ow07wi7.cloudfront.net/54.192.84.173] failed: Read timed out

又或者,插件是不对外的,存在某个私有仓库的,该如何修改或者添加额外的私有仓库地址呢?

直接修改 settings.gradle 来添加其它仓库:

// settings.gradle
pluginManagement {repositories {maven {url 'http://examle.com/maven-repo'}gradlePluginPortal()}
}

当然你也可以使用老的方式应用插件:

buildscript {repositories {maven {url 'http://examle.com/maven-repo'}}dependencies {classpath 'com.example.plugin:gradle-plugin:1.0'}
}apply plugin: 'com.example.plugin'

dependencies

例如根目录依赖配置单项目项目依赖:

dependencies {implementation 'org.springframework.boot:spring-boot-starter'testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

多项目构建

settings.gradle作用就是用于多项目构建,一般像这样:

rootProject.name = 'ant'
include 'framework-eureka'
include 'framework-gateway'include 'module-common'
include 'module-test'

gradle的build.gradle详解相关推荐

  1. gradle中的build script详解

    文章目录 简介 project和task 一个例子 task详细讲解 task脚本 task依赖 动态task 默认task build script的外部依赖 简介 build.gradle是gra ...

  2. Android Gradle manifestPlaceholders 占位符详解

    Android Gradle manifestPlaceholders 占位符详解 在实际项目中,AndroidManifest里十几个地方的值是需要动态的改变(生成apk文件的时候).如果每次去改也 ...

  3. Gradle安装和配置详解

    Gradle安装和配置详解 gradle是基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,也提供了很多第三方插件.在Java Web项目中通常会用到 java.war. ...

  4. Eclipse Java Build Path详解

    Eclipse Java Build Path详解 1.设置"source folder"与"output folder". * source folder:存 ...

  5. Ant之build.xml详解

    Ant的概念  可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道 make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令 ...

  6. android 项目build.gradle,Android build.gradle 配置详解

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Gradle 简介 Android Studio 是采用 Gradle 来构建项目的.Gradle 是一个非常先进的项目 ...

  7. as本地仓库更改_Android Studio 之 Gradle与Project Structure详解

    启动 Project Structure 的时候可以 Structure 看到分两个区域 一个是项目的总体设置区域.还有一个是对Module的分别设置. 一.项目总体设置 SDK Location中可 ...

  8. gradle构建android项目详解

    1.用Gradle构建 1.1 工程结构 如图所示,这是一个不能更普通的Android的Gradle工程了. 根目录下面的settings.gradle当中主要是用来include子模块的,比如我们这 ...

  9. docker build命令详解_Docker 搭建你的第一个 Node 项目到服务器

    本文你能学到什么 Docker 是什么 Docker 概念 关于 Docker 的概念是确实不太好总结,下面我通过四点向你说明 Docker 到底是个什么东西. Docker 是世界领先的软件容器平台 ...

最新文章

  1. Gralde 网络代理
  2. 解决python使用happybase连接hbase报错thriftpy2.transport.base.TTransportException....TSocket read 0 bytes
  3. java公司自己封装的框架_SpringBoot封装自己的Starter的实现方法
  4. 贪吃蛇html游戏代码
  5. C语言每日一练——第88天:汉诺塔问题(河内塔)
  6. Java实战之管家婆记账系统(24)——项目总结
  7. 开机黑屏、自检不通过,主板检测卡代码为25问题解决
  8. faster rcnn:towards real-time object detection with region proposal network
  9. total commander 自定义快捷键
  10. 基金21年发展极简史
  11. 咸鱼ZTMR实例—板载LED
  12. pillow进行图像处理
  13. 学python多大年龄可以学车_考驾照的最小年龄,多少岁可以考驾照
  14. 网络安全事件应急演练组织架构
  15. 《记忆力心理学》5个方法 让你过目不忘
  16. 游戏特效设计用什么制作的?
  17. 用计算机0和1表达难舍之情,表达不舍之情的句子是
  18. 集成spiderMonkey
  19. 【题解】慈溪中学-8.13-T1
  20. android 圆角边框边框渐变,Android中用shape做渐变,边框,圆角等效果

热门文章

  1. 史上最佳工具之Git客户端Fork
  2. 一文了解Memory barrier(内存屏障)
  3. AUTOSAR - ComM - 学习一 :基础知识+配置
  4. 淘宝有好货报名条件及玩法攻略
  5. 单独Windows文件服务器加入AD域
  6. JS遍历从数组中删除指定元素
  7. git head指向老版本_Git HEAD detached from XXX 解决
  8. 10.14黄金暴涨暴跌指导解套,黄金原油白银行情价格趋势分析
  9. C Primer Plus (第六版) 中文版 随手笔记(十二)
  10. 辗转相除法、更相减损法、Stein算法