Java笔记 ·

Gradle使用笔记

buildscript

官方解释为:

Configures the build script classpath for this project.

The given closure is executed against this project's ScriptHandler.

The ScriptHandler is passed to the closure as the closure's delegate.

来源:buildscript { }

配置此项目的构建脚本类路径。可声明用于编译和执行构建脚本的类路径。该类路径也用于加载构建脚本使用的插件。

简单说即设置脚本的运行环境

buildscript中的声明是gradle脚本自身需要使用的资源。可以声明的资源包括依赖项、第三方插件、maven仓库地址等。

而在build.gradle文件中直接声明的依赖项、仓库地址等信息是项目自身需要的资源。

例:

ext

额外的属性扩展允许将新属性添加到现有的域对象。即用于配置额外的属性
详情:ExtraPropertiesExtension

repositories

配置该项目的存储库。支持java 依赖库管理(maven/ivy),用于项目的依赖。

Gradle需要你指定至少一个仓库作为依赖下载的地方,比如mavenCentral

仓库 含义
mavenLocal() 本地仓库
mavenCentral() 远程maven仓库
maven {name 'Custom Maven Repository',url 'http://repository.forge.cloudbees.com/release/')} 自定义仓库

自定义仓库其他写法

dependencies

配置此项目的依赖关系。依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件,如果前面定义了repositories{}maven 库,使用maven的依赖(我没接触过ivy。。)的时候只需要按照用类似于com.android.tools.build:gradle:0.4,gradle 就会自动的往远程库下载相应的依赖。

写法:

1、依赖通过group标识,name和version来确定,比如下面这个:

2、简写

3、添加libs的所有jar包为依赖

将libs目录下所有jar文件进行编译并打包。

4、引入另一个模块

即是将另一个module(等同eclipse中的library)进行编译并打包

5、buildscript代码块独有

buildscript代码块中你可以对dependencies使用classpath声明。该classpath声明说明了在执行其余的build脚本时,class loader可以使用这些你提供的依赖项。这也正是我们使用buildscript代码块的目的。

dependencies {}
用Gradle 构建你的android程序
compile、provided、compile files、compile project四者的区别

allprojects{}

配置此项目及其每个子项目。

subprojects{}

配置该项目的子项目。

configure(rootProject){}

配置一个对象,如此处配置根项目。
Object configure(Objectobject,ClosureconfigureClosure)

bootRepackage

SpringBoot构建插件(spring-boot-gradle-plugin),有一个bootRepackage任务,它的作用是重新打包jar为可执行的jar。
所以他需要指定一个MainClass, 解决办法:
关掉bootRepackage任务

或配置mainclass

spring-boot填坑

注:springBoot 2.0 中 bootRepackage任务已被替换bootJar,并bootWar分别建立可执行的 Jars 和 Wars 的任务。jarwar任务不再参与。

参与评论