gradlegradle入门


备注

Gradle是一个开源的通用构建工具。它在Java社区中很受欢迎,是Android首选构建工具

突出显示的Gradle功能

  • 声明性构建脚本GroovyKotlin编写代码。
  • 许多核心和社区插件使用灵活的,基于约定的方法
  • 增量构建 ,以便不重新运行未更改的依赖项的任务。
  • Maven和Ivy的内置依赖项解析。贡献的插件提供来自其他repositories例如npm)的依赖性解析。
  • 一流的多项目构建。
  • MavenAnt等其他构建工具集成。
  • Build Scans可以提高开发人员协作和优化Gradle构建的能力。

更多信息

如果您想了解有关Gradle功能的更多信息,请查看 Gradle用户指南概述部分。

如果您想尝试Gradle, 请查看此处的指南 。您可以浏览Java快速入门指南,了解如何首次使用Gradle,以及从另一个构建工具迁移。

Gradle安装

要求:已安装Java JDK或JRE(Gradle 3.x版本的版本7或更高版本)

安装步骤:

  1. 官方网站下载Gradle发行版
  2. 打开ZIP包装
  3. 添加GRADLE_HOME 环境变量。此变量应指向上一步中的解压缩文件。
  4. GRADLE_HOME/bin 添加到PATH 环境变量中,以便可以从命令行界面(CLI)运行Gradle
  5. 通过在CLI中键入gradle -v 来测试Gradle安装。输出应包含已安装的Gradle版本和当前的Gradle配置详细信息

更多信息可以在官方用户指南中找到

你好,世界

可以使用项目build.gradle文件中的Groovy代码编写Gradle任务。然后,可以使用终端上的> gradle [taskname] 或通过在Eclipse(如Eclipse)中执行任务来执行这些任务。

要在gradle中创建Hello World示例,我们必须定义一个任务,使用Groovy将字符串打印到控制台。我们将使用Groovy的printLn 来调用Java的System.out.printLn 方法来将文本打印到控制台。

的build.gradle

task hello {
    doLast {
        println 'Hello world!'
    }
}
 

然后我们可以使用> gradle hello> gradle -q hello 来执行此任务。 -q 用于抑制gradle日志消息,以便仅显示任务的输出。

输出> gradle -q hello

> gradle -q hello
Hello world!
 

安装Eclipse的Gradle插件

以下是在Eclipse中安装Gradle插件所需的步骤:

  1. 打开Eclipse并转到Help - > Eclipse Marketplace
  2. 在搜索栏中输入buildship并按Enter键
  3. 选择“Buildship Gradle Integration 1.0” ,然后单击“ 安装”
  4. 在下一个窗口中,单击“ 确认”
  5. 然后, 接受协议的条款和许可,然后单击“ 完成”
  6. 安装完成后,Eclipse需要重启,单击Yes

在OS X / macOS上使用自制程序进行安装

自制软件的用户可以通过运行来安装gradle

brew install gradle
 

使用SdkMan安装

SdkMan的用户可以通过运行以下命令安装Gradle:

sdk install gradle
 

安装特定版本

sdk list gradle
sdk install gradle 2.14
 

切换版本

sdk use gradle 2.12
 

更多关于任务

首先:operator << (leftShift)相当于doLast {closure} 。从gradle 3.2开始不推荐使用 。所有任务代码都在build.gradle中编写。

任务代表构建执行的一些原子工作。这可能是编译某些类,创建JAR,生成Javadoc或将一些存档发布到存储库。

Gradle支持两大类任务:简单和增强。

我们来看一些任务定义样式:

task hello {
    doLast{
       //some code
    }    
}
 

或者:

task(hello) {
    doLast{
       //some code
    }    
}
 

上述任务是等价的。此外,您可以为任务提供一些扩展,例如: dependsOnmustRunAftertype 等。您可以通过在任务定义后添加操作来扩展任务,如下所示:

task hello {
    doLast{
       println 'Inside task'
    }    
}
hello.doLast {
    println 'added code'
}
 

当我们执行此操作时,我们得到:

> gradle -q hello
    Inside task
    added code
 

这里检查有关任务依赖性和排序的问题

我们来谈谈两大类任务。

简单:

我们使用动作闭包定义的任务:

    task hello {
        doLast{
        println "Hello from a simple task"
        }
    }
 

增强

增强它是一项具有预配置行为的任务。您在项目中使用的所有插件都是扩展增强的任务 。让我们创建我们的,你将了解它是如何工作的:

task hello(type: HelloTask)

class HelloTask extends DefaultTask {
    @TaskAction
    def greet() {
        println 'hello from our custom task'
    }
}
 

此外,我们可以将参数传递给我们的任务,如下所示:

class HelloTask extends DefaultTask {
    String greeting = "This is default greeting"
    @TaskAction
    def greet() {
        println greeting
    }
}
 

从现在开始,我们可以像这样重写我们的任务:

   //this is our old task definition style
task oldHello(type: HelloTask) 
   //this is our new task definition style     
task newHello(type: HelloTask) {
    greeting = 'This is not default greeting!'
}
 

当我们执行此操作时,我们得到:

> gradle -q oldHello
This is default greeting

> gradle -q newHello
This is not default greeting!
 

所有关于开发的问题都会将插件插入官方网站