相关文章推荐
忐忑的围巾  ·  蔚来ET5本月将在欧洲开启交付,首批新车已抵达挪威·  2 年前    · 
淡定的墨镜  ·  柴油机“大咖” 新能源“新锐” ...·  2 年前    · 
勤奋的日光灯  ·  深蓝S7产品力有多强 “上市即开启交付”价值 ...·  2 年前    · 
有腹肌的斑马  ·  画风突变,日本新型护卫舰走向非主流,动力系统 ...·  2 年前    · 
强悍的咖啡豆  ·  降雨量大、洪水前后叠加、多流汇集——专家解读 ...·  2 年前    · 
Code  ›  边学边用Gradle:Gradle的脚本结构开发者社区
gradle
https://cloud.tencent.com/developer/article/1343386
逼格高的自行车
2 年前
作者头像
WindCoder
0 篇文章

边学边用Gradle:Gradle的脚本结构

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > WindCoder > 边学边用Gradle:Gradle的脚本结构

边学边用Gradle:Gradle的脚本结构

作者头像
WindCoder
发布 于 2018-09-19 15:57:57
1.2K 0
发布 于 2018-09-19 15:57:57
举报

前言

一个简单的Gralde脚本,主要包含如下内容,其中标明可选的都是可以删掉的部分:

  • 插件引入:声明你所需的插件---如 apply plugin: 'java'
  • 属性定义(可选):定义扩展属性--- 如 ext
  • 局部变量(可选):定义局部变量--- 如 def
  • 属性修改(可选):指定project自带属性---如: group 'com.windcoder'
  • 仓库定义:指明要从哪个仓库下载jar包---如:repositories
  • 依赖声明:声明项目中需要哪些依赖---如:dependencies
  • 自定义任务(可选):自定义一些任务--如:task printWindCoder
//定义扩展属性(给脚本用的脚本)
buildScript {
    repositories {
         mavenCentral()
//应用插件,这里引入了Gradle的Java插件,此插件提供了Java构建和测试所需的一切。
apply plugin: 'java'
//定义扩展属性(可选)
ext {
    windcoder="windcoder"
//定义局部变量(可选)
def com="com"
//修改项目属性(可选)
group 'com.windcoder'
version '1.0-SNAPSHOT'
//定义仓库,当然gradle也可以使用各maven库 ivy库 私服 本地文件等
repositories {
    maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}
//定义依赖,此处定义了项目依赖
dependencies {
     compile project(":qycms-core:system-console")
//自定义任务(可选)
task printWindCoder {
    println "${windcoder}__${com}"
}

参考: 跟我学Gradle-3.2:快速入门,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文件 中直接声明的依赖项、仓库地址等信息是 项目自身 需要的资源。

例:

buildscript {
    ext {
        springBootVersion = "1.5.8.RELEASE"
    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/plugins-release" }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
apply plugin: 'org.springframework.boot'

ext

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

repositories

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

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

repositories {
    mavenCentral()
}

仓库

含义

mavenLocal()

本地仓库

mavenCentral()

远程maven仓库

maven {name 'Custom Maven Repository',url 'http://repository.forge.cloudbees.com/release/')}

自定义仓库

自定义仓库其他写法

 maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}

dependencies

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

写法:

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

dependencies {
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'
}

2、简写

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
}

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

    dependencies {
        compile fileTree(dir: 'lib', exclude:'', include: '*.jar')
    }

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

4、引入另一个模块

    dependencies {
        compile project(":windcoder-com:test")
    }

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

5、buildscript代码块独有

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }

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

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

allprojects{}

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

subprojects{}

配置该项目的子项目。

configure(rootProject){}

配置一个对象,如此处配置根项目。

 
推荐文章
忐忑的围巾  ·  蔚来ET5本月将在欧洲开启交付,首批新车已抵达挪威
2 年前
淡定的墨镜  ·  柴油机“大咖” 新能源“新锐” 这家企业何以“双赛道”发力-新华网
2 年前
勤奋的日光灯  ·  深蓝S7产品力有多强 “上市即开启交付”价值再越级- 焦点大图 -华龙网
2 年前
有腹肌的斑马  ·  画风突变,日本新型护卫舰走向非主流,动力系统为航母打前站_战舰
2 年前
强悍的咖啡豆  ·  降雨量大、洪水前后叠加、多流汇集——专家解读重庆遭遇大洪水成因-新华网
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号