gradle的build.gradle详解
一个项目中只放置一个build.gradle,build.gradle可以理解为一个Project框架,提供了对一个项目的基本配置。
project的常用:
属性:
- group
- name(artifact)
- version 项目版本(全局的)
- sourceCompatibility = 1.8 // source使用的jdk版本
- targetCompatibility = 1.8 // 编译时使用的jdk版本或者更新的java虚拟机兼容
- compileJava.options.encoding = 'UTF-8'
- compileTestJava.options.encoding = 'UTF-8'
方法:
- apply 应用插件
- dependencies 添加依赖
- repositories 添加仓库
- task 定义任务
- buildscript
- allprojects
- subprojects
- 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详解相关推荐
- gradle中的build script详解
文章目录 简介 project和task 一个例子 task详细讲解 task脚本 task依赖 动态task 默认task build script的外部依赖 简介 build.gradle是gra ...
- Android Gradle manifestPlaceholders 占位符详解
Android Gradle manifestPlaceholders 占位符详解 在实际项目中,AndroidManifest里十几个地方的值是需要动态的改变(生成apk文件的时候).如果每次去改也 ...
- Gradle安装和配置详解
Gradle安装和配置详解 gradle是基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,也提供了很多第三方插件.在Java Web项目中通常会用到 java.war. ...
- Eclipse Java Build Path详解
Eclipse Java Build Path详解 1.设置"source folder"与"output folder". * source folder:存 ...
- Ant之build.xml详解
Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道 make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令 ...
- android 项目build.gradle,Android build.gradle 配置详解
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Gradle 简介 Android Studio 是采用 Gradle 来构建项目的.Gradle 是一个非常先进的项目 ...
- as本地仓库更改_Android Studio 之 Gradle与Project Structure详解
启动 Project Structure 的时候可以 Structure 看到分两个区域 一个是项目的总体设置区域.还有一个是对Module的分别设置. 一.项目总体设置 SDK Location中可 ...
- gradle构建android项目详解
1.用Gradle构建 1.1 工程结构 如图所示,这是一个不能更普通的Android的Gradle工程了. 根目录下面的settings.gradle当中主要是用来include子模块的,比如我们这 ...
- docker build命令详解_Docker 搭建你的第一个 Node 项目到服务器
本文你能学到什么 Docker 是什么 Docker 概念 关于 Docker 的概念是确实不太好总结,下面我通过四点向你说明 Docker 到底是个什么东西. Docker 是世界领先的软件容器平台 ...
最新文章
- Gralde 网络代理
- 解决python使用happybase连接hbase报错thriftpy2.transport.base.TTransportException....TSocket read 0 bytes
- java公司自己封装的框架_SpringBoot封装自己的Starter的实现方法
- 贪吃蛇html游戏代码
- C语言每日一练——第88天:汉诺塔问题(河内塔)
- Java实战之管家婆记账系统(24)——项目总结
- 开机黑屏、自检不通过,主板检测卡代码为25问题解决
- faster rcnn:towards real-time object detection with region proposal network
- total commander 自定义快捷键
- 基金21年发展极简史
- 咸鱼ZTMR实例—板载LED
- pillow进行图像处理
- 学python多大年龄可以学车_考驾照的最小年龄,多少岁可以考驾照
- 网络安全事件应急演练组织架构
- 《记忆力心理学》5个方法 让你过目不忘
- 游戏特效设计用什么制作的?
- 用计算机0和1表达难舍之情,表达不舍之情的句子是
- 集成spiderMonkey
- 【题解】慈溪中学-8.13-T1
- android 圆角边框边框渐变,Android中用shape做渐变,边框,圆角等效果