资讯专栏INFORMATION COLUMN

gradle-学习笔记(1)-初步使用

frank_fun / 971人阅读

摘要:最近想深入的学习一下工程化方面相关的东西,在和直接纠结不已,因为的扩展性太差劲了,学习成本颇高,所以最后投入了的怀抱中,以后有时间再重新学习一下吧最近的学习笔记是基于系列,其中各种教程和例子大都是来源于官方文档或者网络上的博客。

最近想深入的学习一下工程化方面相关的东西,在maven和gradle直接纠结不已,因为maven的扩展性太差劲了,学习成本颇高,所以最后投入了gradle的怀抱中,以后有时间再重新学习一下maven吧

最近的学习笔记是基于gradle 5 系列,其中各种教程和例子大都是来源于官方文档或者网络上的博客。内容涵盖我在学习gradle过程中的各种心得和gradle的一些使用方法

注意: 这里使用的配偶语言世kotlin 而不是使用groovy

gradle创建项目

一个命令

gradle init

用户可以通过这个命令创建一个基本的gradle项目包括gradle项目的目录结构

├── build.gradle (1)
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar (2)
│       └── gradle-wrapper.properties (3)
├── gradlew (4)
├── gradlew.bat (5)  
└── settings.gradle (6)  

(1) gradle 的构建脚本用来构建当前的gradle项目,最核心的配置文件

(2) (3) 一个gradle副本和配置文件,用来当如果系统中的gradle版本和项目使用的gradle版本不同,将会在这里下载一个项目中的版本

(4) (5) 配套使用的命令行工具 没有.bat后缀的是unix系统命令有的是windowns系统,可以用来执行gradle中定义的各种task 任务

(6) 用于配置Gradle构建的Gradle设置脚本

gradle的task

gradle 方便用户进行配置的特性是源于gradle提供了方便使用task参数
这里编写一个很基本的copy文件的权限,在路径中添加一个src文件夹和dest文件夹,在src文件中添加一个文件markfile.txt 并且里面有一个内容hello world!

然后在build.gradle 中编写一个任务

task copy(type:Copy,group:"custom",description:"test one"){
    from "src"
    into "dest"
}

其中的type 字段将会调用系统中的Copy函数,而group和description 只是描述这个过程的描述符,只会影响系统的log输出,并不会影响实际的效果

./gradlew Copy

运行对应的命令就能运行对应的copy方法

使用一个gradle内部的插件系统

在项目中使用插件标签plugins添加指定的base插件到系统中

plugins {
    id "base"
}

然后在指定的位置我们添加一个插件(和任务的使用方法相同,我怀疑其实gradle的插件就是打包好的任务)

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

然后运行对应的命令,就可以在对应的目录 build/distributions 中找到 src目录下的压缩文件了

./gradlew Zip
查看当前拥有的task

gradle 有一个内置的命令

./gradlew task

这条命令将会将所有的当前的gradle项目中拥有的构建命令全部列出来

> Task :tasks

------------------------------------------------------------
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 - Copies sources to the dest directory

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

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 1s
1 actionable task: 1 executed
<-------------> 0% WAITING
> IDLE
gradle 提供的在线查看构建详情的方法 --scan命令

我们在使用构建命令的时候可以在命令的后面添加一个 --scan命令,通过这个命令可以链接到gradle官方的view显示仓库或者连接到自定义的链接仓库中,然后轻松的查看项目使用的构建任务,构建时间等等信息

./gradlew Zip --scan

然后可以登入命令行打出的一个网址,在其中的form表单中填写邮箱地址,然后就会将构建的信息发送到邮箱中了

注意:这个功能是收费的
gradle 展示当前系统的可用参数信息 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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73432.html

相关文章

  • Gradle学习笔记 使用Gradle Wrapper

    摘要:可以在没有安装的情况下使用,这时候就需要了。创建文件使用来创建一组文件。官方建议我们在所有项目中都创建文件,方便没有安装的用户使用。代码如下然后使用来查看变更之后的版本。不过只需要下载一次,之后再次使用相同的版本就不会下载了。 Gradle可以在没有安装Gradle的情况下使用,这时候就需要Gradle Wrapper了。Gradle Wrapper其实就是一个脚本文件,它会在没有安装...

    Richard_Gao 评论0 收藏0
  • gradle-学习笔记(2)-多项目构建

    摘要:记得在中支持多个子项目的构建方法同样的在中也会支持多项目的构建方法还记得在中如何配置多项目工程吗这里回忆一下首先我们需要一个父元素文件比如这样而在中我们并不需要指定父元素的标签我们只需要编写好对应的文件夹名称,并且将文件夹名称和对 记得在maven中支持多个子项目的构建方法,同样的在gradle 中也会支持多项目的构建方法 还记得在maven中如何配置多项目工程吗, 这里回忆一下 首先...

    happen 评论0 收藏0
  • Gradle学习笔记1)创建简单的Java项目

    摘要:是一个基于和概念的项目自动化构建工具。当前其支持的语言限于和主要面向应用。本次分享将具体讲述如何利用来创建一个简单的项目。首先我们新建一个文件夹作为展示的项目。中的代码如下这是用来定义项目。接着创建文件夹,这是项目开发中习惯性的构建方法。   Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)...

    URLOS 评论0 收藏0
  • 鸿蒙学习笔记之初运项目

    摘要:项目结构下面是我们创建项目生成的目录展开目录如下配置文件,由系统自动生成,一般情况下不需要进行修改开发工具的信息默认启动模块主模块,开发者用于编写源码文件以及开发资源文件的目录用于存放模块的依赖文件用于存放源码用于存放应用所用到的资源文件 1.项目结构 下面是我们创建项目生成的目录 1.M...

    不知名网友 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<