gradle学习总结(代码片段)

覃会程 覃会程     2022-12-04     744

关键词:



gradle的特性

  • 是一种通用的灵活的构建工具
  • 对已有的 maven 和 ivy 仓库的全面支持
  • 基于 groovy,其 build 脚本使用 groovy dsl 编写
  • Gradle 的构建脚本是采用 Groovy 写的,而不是用 XML。


groovy语言的简单使用

println "hello word!"

//定义变量
def a = 12
println a

def s = "asdfasf"
println s

//定义一个集合
def list = ['a', 'b']
//向集合里添加元素
list << 'c'
//取出list中的第三个元素
println list.get(2)

//定义一个map
def map = ["key1":"value1", "key2":"value2"]
//向map中添加键值对
map.key3 = "value3"
//根据key取出value的值
println map.get("key3")

//grovvy中的闭包
//什么是闭包?闭包其实就是一段代码块。在gradle中,我们主要是把闭包当参数来使用。
// 定义一个闭包
def b1 = 
    println "hello b1"


//定义一个方法,方法里面需要闭包类型的参数
def method1(Closure closure)
    closure()


//调用方法method1
method1(b1)

//定义一个带参数的闭包
def b2 = 
    v ->
        println "hello $v"


//定义一个方法,方法里需要闭包类型的参数
def method2(Closure closure)
    closure("canshu")


//调用method2
method2(b2)

执行结果:

hello word!
12
asdfasf
c
value3
hello b1
hello canshu


build.gradle 文件说明

// 项目归属和版本号
group 'com.tencent.pcg'
version '1.0-SNAPSHOT'

// buildscript中的声明是gradle脚本自身需要使用的资源。
// 可以声明的资源包括依赖项、第三方插件、maven仓库地址等
buildscript 
    repositories 
        maven  url 'http://maven.oa.com/nexus/content/repositories/central'
    
    dependencies 
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE")
    


// 使用 java 插件
apply plugin: 'java'
// 使用 springboot 框架
apply plugin: 'org.springframework.boot'
// 使用 Scala 插件
apply plugin: 'scala'

// 打的 jar 包的名称和版本信息
jar 
    baseName = 'data-qulity-guard'
    version = '0.0.1'


// demo main程序入口
task run(type: JavaExec, dependsOn: classes) 
    main = 'com.tencent.pcg.ReadApiDemo'
    classpath = sourceSets.main.runtimeClasspath


sourceCompatibility = 1.8

// 指定本地仓库 / 远程仓库  优先级从上往下
repositories 
    mavenCentral()
    // 使用公司内部的远程仓库
    maven  url 'http://maven.oa.com/nexus/content/repositories/central'
    maven  url 'http://maven.oa.com/nexus/content/repositories/mqq/'
    maven  url 'http://maven.oa.com/nexus/content/groups/public/'


// 依赖配置,引入依赖的 kafka,scala
dependencies 
    compile("org.springframework.boot:spring-boot-starter-web:1.5.4.RELEASE")
    compile("org.springframework.boot:spring-boot-starter:1.5.4.RELEASE")
    compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2")
    compile("mysql:mysql-connector-java:5.1.21")
    compile("org.scala-lang:scala-library:2.11.4")
    testCompile("org.springframework.boot:spring-boot-starter-test")
    compile("org.apache.kafka:kafka_2.11:0.8.2.1")
    compile("qq-central:msg_fetch_api_3.0:1.0.0-SNAPSHOT")
        exclude group: 'org.apache.kafka', module: 'kafka_2.10'
    
    testCompile group: 'junit', name: 'junit', version: '4.12'



gradle脚本小总结(代码片段)

1.禁用taskgradle.taskGraph.whenReadytasks.eachtask->if(task.name.equalsIgnoreCase("transformClassesWithDelegateProguardTransformForRelease")||task.name.equalsIgnoreCase("transformClassesW 查看详情

gradle脚本小总结(代码片段)

1.禁用taskgradle.taskGraph.whenReadytasks.eachtask->if(task.name.equalsIgnoreCase("transformClassesWithDelegateProguardTransformForRelease")||task.name.equalsIgnoreCase("transformClassesW 查看详情

不一样的gradle多渠道配置总结2(代码片段)

...涉及的到一些groovy语法点,可在如下文章中找到&学习:《Gradle入门系列(一)——groovy基础语法》《不一样的Gradle多渠道配置总结》一、问题AndroidGradleplugin给Androidapk打包扩展了更多的可能性,其中多渠道打包是日常... 查看详情

gradle教程学习笔记(代码片段)

今天继续学习gradle的命令,首先可以用idea建立一个gradle的项目,然后会默认生成一段脚本,在这个脚本里面我引用了spring框架。首先来说一下具体的命令  -?,-h,--helpShowsthishelpmessage.-a,--no-rebuildDonotrebuildprojectdependencies.-b,--b... 查看详情

gradle学习(代码片段)

引入插件applyplugin:‘java‘applyplugin:‘war‘applyplugin:‘jetty‘       如果希望使用jar来启动项目,可以这样修改项目和插件属性。applyplugin:‘java‘//当前项目版本version=0.1//项目兼容到java1.6版本sourceCompatibil... 查看详情

gradle脚本小总结(代码片段)

1.禁用taskgradle.taskGraph.whenReadytasks.eachtask->if(task.name.equalsIgnoreCase("transformClassesWithDelegateProguardTransformForRelease")||task.name.equalsIgnoreCase("transformClassesWithApplicationInjectForRelease"))task.enabled=falseprintln'####disabletask..'... 查看详情

c++学习(四一三)gradle离线配置offline(代码片段)

修改File->Settings->Build,Execution,Deployment->Gradle的配置修改gradle.properties,增加gradle.user.home=D:/Cache/.gradle 查看详情

gradle教程学习笔记(代码片段)

...西其实也差不多原理的。废话不多说这个也只是我的一个学习笔记而已,gradle来说任何东西在gradle上都是两个基本的概念,项目和任务,grad 查看详情

gradle使用总结(代码片段)

下载Gradle地址:GradleBuildToolgradleinit使用gradleinit即可创建一个gradle项目的骨架文件说明可以看到一共创建了2个目录和6个文件,其中2个目录和4个文件都跟wrapper有关:gradlew:linux或者Unix下用于执行wrapper命令的Shell... 查看详情

gradle使用总结(代码片段)

下载Gradle地址:GradleBuildToolgradleinit使用gradleinit即可创建一个gradle项目的骨架文件说明可以看到一共创建了2个目录和6个文件,其中2个目录和4个文件都跟wrapper有关:gradlew:linux或者Unix下用于执行wrapper命令的Shell... 查看详情

gradle学习笔记(代码片段)

Gradle学习笔记阅读《AndroidGradle权威指南》一书。整理的笔记和在阅读过程中所遇到的问题汇总。由于在练习的过程中,书中没有给出源码的路径。所以我在码云上新建了一个仓库,供大家学习交流。码云仓库地址注意事... 查看详情

androidgradle构建经验总结(代码片段)

...Gradle构建编译问题等,这里根据以往的踩坑经验做个总结,以方便大家日后能够更高效率的处理Gradle相关依赖的问题。一、依赖配置目前Gradle版本支持的依赖配置有:implementation、api、compileOnly、runtimeOnly和annotationProce... 查看详情

gradle学习总结——gradle之于maven有何优势

前言Gradle渐渐地火了起来,但是大部分人还在使用Maven,本文将对Gradle和Maven进行全面的比较,大家可以据此作为选型比较的依据。Maven和Gradle都属于“构建工具”,都是用来自动化工作,并把我们的源码编译... 查看详情

bruceeckel教你如何爬出gradle的“坑”?(代码片段)

...f0c;也对Gradle有了更深入的认识。本篇文章主要分享Bruce在学习Gradle时总结的一些方法论以及需要规避的陷阱,希望对你有帮助 查看详情

gradle学习(代码片段)

projects和tasks任何一个Gradle构建都是由一个或者多个project组成每个project都有多个tasks构成每个task都代表了构建执行过程中的一个原子性操作.例如编译打包构建一个gradle应用通过在命令行运行gradle命令来执行构建,gradle命令会从... 查看详情

androidstudio使用gradle引入第三方库文件的总结(代码片段)

...;接触到了各式各样的第三方库文件的引入,也是时候总结一波了。使用AndroidStudio开发Android应用时,避免不了需要借助Gradle引入各式各样的第三方库文件,帮助我们更好的开发App,常见的引入方式有:Jar文件&#... 查看详情

c++学习(四一二)gradle的buildscriptallprojects(代码片段)

1、buildscript里是gradle脚本执行所需依赖,分别是对应的maven库和插件2、allprojects里是项目本身需要的依赖,比如我现在要依赖我自己maven库的toastutils库,那么我应该将mavenurl'https://dl.bintray.com/calvinning/maven'写在这... 查看详情

gradle系列之构建脚本基础(代码片段)

...分别介绍了Gradle基础知识以及Groovy相关基础知识,这也是学习Gradle所必需了解的,文章链接如下::Gradle系列之初识GradleGradle之Groovy基础篇本文将对Gradle整体进行了介绍和学习,了解了Task、Project等相关概念以及对使用Gradle来构... 查看详情