热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Gradle入门教程(机翻自官网)

首先可以gradlehelp了解一下常用的命令.gradlehelpTask:helpWelcometoGr

首先可以gradle help 了解一下常用的命令.

gradle help

> Task :help

Welcome to Gradle 6.3.

To run a build, run gradle  ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

To see more detail about a task, run gradle help --task 

For troubleshooting, visit https://help.gradle.org

Tasks 命令列出了可以调用的 Gradle 任务,包括由基础插件添加的任务,以及刚刚添加的自定义任务。

❯ ./gradlew tasks

> Task :tasks

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Archive tasks
-------------
zip - Archives sources in a zip file

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
clean - Deletes the build directory.

Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.

Custom tasks
------------
copy - Simply copies sources to a the build directory

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'basic-demo'.
components - Displays the components produced by root project 'basic-demo'. [incubating]
dependencies - Displays all dependencies declared in root project 'basic-demo'.
dependencyInsight - Displays the insight into a specific dependency in root project 'basic-demo'.
dependentComponents - Displays the dependent components of components in root project 'basic-demo'. [incubating]
help - Displays a help message.
model - Displays the configuration model of root project 'basic-demo'. [incubating]
projects - Displays the sub-projects of root project 'basic-demo'.
properties - Displays the properties of root project 'basic-demo'.
tasks - Displays the tasks runnable from root project 'basic-demo'.

Verification tasks
------------------
check - Runs all checks.

Rules
-----
Pattern: clean: Cleans the output files of a task.
Pattern: build: Assembles the artifacts of a configuration.
Pattern: upload: Assembles and uploads the artifacts belonging to a configuration.

To see all tasks and more detail, run gradlew tasks --all

To see more detail about a task, run gradlew help --task 

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

快速入门- Analyze and debug your build

Gradle 提供了一个简单的 Java 项目,您可以使用它来演示构建扫描功能。 如果你想使用它,克隆或下载存储库。

$ git clone https://github.com/gradle/gradle-build-scan-quickstart
Cloning into 'gradle-build-scan-quickstart'...
$ cd gradle-build-scan-quickstart

从 Gradle 4.3开始,您可以启用构建扫描,而无需在构建脚本中进行任何附加配置。 当使用命令行选项—— scan 发布构建扫描时,所需的构建扫描插件将自动应用。 在构建结束之前,您被要求在命令行上接受许可协议。 下面的控制台输出演示了该行为。

$ ./gradlew build --scan

如果你浏览你的构建扫描,你应该能够很容易地找出什么任务被执行,他们花了多长时间,哪些插件被应用,等等。 下次在 StackOverflow 上调试某些内容时,考虑共享构建扫描。

Creating New Gradle Builds 创建新的 Gradle 构建

❯ mkdir basic-demo
❯ cd basic-demo
❯ gradle init 
Gradle 入门教程(机翻自官网)

Gradle 提供了通过 Groovy 或基于 kotlin 的 DSL 创建和配置任务的 api。 Project 包括一组 Tasks,每个 Tasks 执行一些基本操作。

Gradle 提供了一个任务库,您可以在自己的项目中进行配置。 例如,有一种名为 Copy 的核心类型,它将文件从一个位置复制到另一个位置。 Copy 任务非常有用(有关详细信息,请参阅文档) ,但是在这里,让我们再次保持它的简单性。 执行以下步骤:

  1. 创建一个名为 src 的目录。
  2. 在 src 目录中添加名为 myfile.txt 的文件。 内容是任意的(甚至可以为空) ,但为了方便起见,添加单行 Hello,World! 对它。
  3. 在 build.gradle 文件中,在构建文件中定义一个名为 Copy of type Copy (注意大写字母)的任务,该任务将 src 目录复制到名为 dest 的新目录。 (您不必创建 dest 目录ー任务会为您完成。)
task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {
    from "src"
    into "dest"
}

在这里,groupdescription可以是任何你想要的。 您甚至可以省略它们,但这样做也会在任务报告中省略它们,以后再使用。

现在执行新的复制任务:

❯ ./gradlew copy
> Task :copy

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

执行zip命令, 了解 Apply a plugin 使用插件

包括了一系列插件,更多的插件可以在 Gradle 插件门户网站上找到。 发行版中包含的插件之一是“basic插件。 结合名为 Zip 的核心类型,可以使用已配置的名称和位置创建项目的 Zip 归档。

plugins {
    id "base"
}

task zip(type: Zip, group: "Archive", description: "Archives sources in a zip file") {
    from "src"
    setArchiveFileName "basic-demo-1.0.zip"
}

基础插件使用设置在 build / distribution 文件夹中创建一个名为 basic-demo-1.0.zip 的归档文件。

❯ ./gradlew zip
> Task :zip

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

Discover available properties 发现可用属性

❯ ./gradlew properties

输出是广泛的,下面是一些可用的属性:

> Task :properties

------------------------------------------------------------
Root project
------------------------------------------------------------

buildDir: /Users/.../basic-demo/build
buildFile: /Users/.../basic-demo/build.gradle
description: null
group:
name: basic-demo
projectDir: /Users/.../basic-demo
version: unspecified

BUILD SUCCESSFUL

Buildfile 属性是构建脚本的完全限定路径名,默认情况下位于 projectDir 中。

您可以更改许多属性。 例如,您可以尝试将以下行添加到构建脚本文件中,并重新执行 gradle 属性。

description = "A trivial Gradle build"
version = "1.0"

推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
author-avatar
桑正青0V1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有