• Gradle的快速入门


    1.基础知识:

    Gradle提供了:构建项目的框架。但是其中起作用的是Plugin。

    Gradle在默认情况下提供了很多常用的Plugin。例如:构建Java的Plugin、还有war、Ear等。

    Gradle不提供内建项目的生命周期管理,只是java Plugin向Project中添加了很多Task,这些Task依次执行,营造了如同Maven般构建项目的生命周期。

    Gradle中涉及的主要领域对象主要是Project和Task。Project为task提供上下文,所有的Plugin要么向Project中添加用于配置的Property,要么向Project中添加不同的Task。

    一个Task表示一个逻辑上较为独立的执行过程,比如:编译Java源码、拷贝文件、打jar包。

    一个Task可以读取和设置Project的Property以完成特定的操作。

    在测试文件夹下,创建一个build.gradle。内容如下:

    task helloWord << {
        println "Hello World!"
    }

    这里“<<”表示向helloWorld中加入执行代码:其实是groovy代码。

    Gradle提供了一整套DSL,底层依赖和执行的是groovy。

    可以在build.gradle目录下,控制台中执行:

    gradle helloWorld

    则会输出:

    Starting a Gradle Daemon (subsequent builds will be faster)
    
    > Task :helloWorld
    Hello World!
    
    BUILD SUCCESSFUL in 6s

    上述的helloWorld类型是一个DefaultTask类型、是定义一个Task时的默认类型。我们也可以显示地生命Task的类型,或者自定义一个Task类型。

    比如:定义一个用于文件拷贝的Task:

    task copyFile(type: Copy) {
        from 'xml'
        into 'destination'
    }

    以上task的作用是将:xml文件拷贝到destination文件夹。不过文件夹是相对的,在build.grade目录。

    Task也存在依赖关系(正是因为这个依赖关系表现出来了类似于maven的生命周期现象)

    task taskB() {
        println "i am taskB"
    }
    
    task taskA(dependsOn: taskB) {
        println "i am taskA"
    }
    //这里被依赖task必须在依赖task前声明

    Gradle提供了很多Task,在控制台使用:

    gradle tasks //查看所有gradle提供的task
    gradle tasks --a//查看所有的task,包括我们自己定义的task

    输出如下:

    buildEnvironment - Displays all buildscript dependencies declared in root projec
    components - Displays the components produced by root project 'gradleLearning'.
    dependencies - Displays all dependencies declared in root project 'gradleLearnin
    dependencyInsight - Displays the insight into a specific dependency in root proj
    dependentComponents - Displays the dependent components of components in root pr
    help - Displays a help message.
    model - Displays the configuration model of root project 'gradleLearning'. [incu
    projects - Displays the sub-projects of root project 'gradleLearning'.
    properties - Displays the properties of root project 'gradleLearning'.
    tasks - Displays the tasks runnable from root project 'gradleLearning'.

    可以看到默认提供的Task。

    dependencies用于显示Project的依赖信息,

    Projects用来显示所有Project,包括根Project和子Project,而properties则用于显示一个Project所包含的所有Property。

    默认情况下,Gradle为Project添加了很多Property,可以使用如下命令查看:

    以上Property中,allprojects:表示所有的Project,这里包含一个根Project,在多项目构建中,它将包含多个Project;

    buildDir表示构建结果的输出目录。

    我们自定义的helloWorld和copyFile也成为Project中的Property。

    另外:Project还包括用于执行Ant命令的DefaultAntBuilder(Property名为ant)和Project的描述属性description。

  • 相关阅读:
    Docker启动ubuntu容器中使用sudo后报错,bash: sudo: command not found
    Redis持久化rdb&aof
    Python3中copy模块常用功能及其他几种copy方式比较
    学习笔记:tkinter模块常用参数(python3)
    Python核心编程第二版(中文).pdf 目录整理
    11、487-3279
    10、Crashing Balloon
    9、Exponentiation
    8、Fire Net
    7、Reverse Root
  • 原文地址:https://www.cnblogs.com/lilinzhiyu/p/8523826.html
Copyright © 2020-2023  润新知