命令构建gradle项目_构建Gradle项目

本文详细介绍了如何使用命令行创建和管理Gradle项目,包括初始化项目、创建Task、自定义Task类型、理解Gradle构建生命周期、增量构建以及日志管理和插件应用。通过实例展示了如何在`build.gradle`文件中定义任务,以及如何执行和定制Gradle任务,以提高构建效率。
摘要由CSDN通过智能技术生成

创建Gradle项目(demo2 --> example1)创建目录

❯ mkdir example1

❯ cd example1初始化一个Gradle项目,使用gradle的init命令

❯ gradle init

Starting a Gradle Daemon (subsequent builds will be faster)

BUILD SUCCESSFUL in 3s

2 actionable tasks: 2 executed初始化后的项目结构

├── build.gradle // 用于配置当前项目的Gradle构建脚本

├── gradle

│ └── wrapper

│ ├── gradle-wrapper.jar // gradlew 的可执行JAR包

│ └── gradle-wrapper.properties // gradlew 的配置属性

├── gradlew // 基于 unix 的系统的 Gradlew 脚本

├── gradlew.bat // 基于 windows 的系统的 Gradlew 脚本

└── settings.gradle // 用于配置 Gradle 构建的 Gradle 设置脚本

创建一个Task

在 Gradle 中定义 Task 的时候,可以指定更多的参数,如下所示:

参数名含义默认值nametask的名字必须指定,不能为空typetask的父类默认值为org.gradle.api.DefaultTask,类型有copy、jar、Delete 等等 可以参考Doc文档overwrite是否替换已经存在的同名taskfalsegrouptask所属的分组名nulldescriptiontask的描述nulldependsOntask依赖的task集合无constructorArgs构造函数参数无在项目中新建src目录,创建一个myfile.txt的文件

mkdir src

echo "Hello,world" >> src/myfile.txt在build.gradle文件中,写入以下代码:

task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {

from "src"

into "dest"

}

// group 和 description 可以是想要的任何内容执行创建的 copy 的 task :

❯ ./gradlew copy

> Task :copy

BUILD SUCCESSFUL in 0s

1 actionable task: 1 executed

// 通过检查dest目录中现在有一个名为myfile.txt的文件,并且它的内容与src目录中相同文件的内容相匹配,来验证它是否按预期工作。

自定义Task 类型 ( demo --> example2 )

Gradle 中通过 class 关键字创建的 task,默认的父类都是 org.gradle.api.DefaultTask,这里定义了一些 task 的默认行为。看看下面这个例子:

//自定义Task类,必须继承自DefaultTask

class SayHelloTask extends DefaultTask {

String msg = "default name"

int age = 18

//构造函数必须用@javax.inject.Inject注解标识

@javax.inject.Inject

SayHelloTask(int age) {

this.age = age

}

//通过@TaskAction注解来标识该Task要执行的动作

@TaskAction

void sayHello() {

println "Hello $msg ! age is ${age}"

}

}

//通过constructorArgs参数来指定构造函数的参数值

task hello1(type: SayHelloTask, constructorArgs: [30])

//通过type参数指定task的父类,可以在配置代码里修改父类的属性

task hello2(type: SayHelloTask, constructorArgs: [18]) {

//配置代码里修改 SayHelloTask 里的字段 msg 的值

msg = "hjy"

}

gradle 生命周期管理 (demo2 --> example5)

gradle的构建分为初期化/配置/执行三个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值