Gradle——创建简单的项目
项目 & 任务
Gradle 的一切都是基于项目和任务的。
构建由一个或多个项目组成。项目的概念很抽象,它取决于你要用Gradle 做什么 。项目可以是 一个 Jar 库或者一个 web 程序。也可以是一个 zip 压缩包,也可以是将项目部署到生产环境等等;
一个项目是由一个或多个任务组成的;任务是构建工作的原子单位,最小的工作单元。例如:编译字节码,创建 jar 。
Hello World
创建一个简单的任务,输出 Hello World!.
Groovy
task hello{
doLast {
println 'Hello World.'
}
}
Kotlin
tasks.register("hello"){
doLast {
println ("Hello World.")
}
}
输入命令 运行该任务
gradle hello
创建一个简单的构建
新建一个目录
使用 init 命令创建构建项目
Gradle 现在支持两种--Kotlin DSL 和 Groovy DSL .默认是 基于Groovy的,如果要使用 Kotlin 可以 使用 --dsl kotlin
gradle init --dsl kotlin
会生成如下目录
其中 .gitigonre 是 git 忽略文件;.gradle 是 gradle 的一些信息。
需要我们关注的是下面这些文件
├── cradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── build.gradle.kts
├── gradlew
├── gradlew.bat
└── settings.gradle.kts
- warpper 是 Gradle Wrapper 使用的目录
- gradle-wrapper.jar 是执行 Gradle Wrapper 使用的
- gradle-wrapper.properties 是 配置 Gradle Wrapper 属性的
- build.gradle.kts 用于配置当前项目的Gradle构建脚本
- gradlew 是 Unix 机器上的 执行脚本
- gradlew.bat 是 window 上的执行脚本
- settings.gradle.kts 是 用于配置Gradle构建的Gradle设置脚本
创建任务
Gradle提供了通过Groovy或基于kotlin的DSL创建和配置任务的api。项目包含一组任务,每个任务执行一些基本操作。
Gradle提供了一个任务库,我们可以在自己的项目中配置这些任务。例如,有一个核心类型的 Copy 任务,它可以复制文件。
下面我们就配置这个 任务来使用一下。
创建一个目录 src
在 src 下创建一个文件名称任意,例如 myFile.txt。添加任意内容,例如 Hello World!
在 配置脚本(build.gradle.kts) 添加 一个 Copy 类型的 copy 任务,从 src 目录复制到 dest 目录
Gradle 在执行时会自动创建 dest 目录。
Kotlin
tasks.register<Copy>("copy"){
description = "Copies sources to the dest directory"
group = "Custom"
from("src")
into("dest")
}
Groovy
task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {
from "src"
into "dest"
}
description 和 group 都是可选的,可以随便你定义;也是可以省略的;
执行 copy 任务
gradle copy
检查里面的 myFile.txt 是否复制完成。
使用插件
Gradle 提供了大量的插件,在 Gradle 插件站 可以查到
今天使用 一个 base 插件 结合它的核心类型 Zip 任务,实现打包压缩包的任务。
使用 base 插件
Kotlin
plugins {
id("base")
}
... rest of the build file ...
Groovy
plugins {
id "base"
}
... rest of the build file ...
创建一个 zip 任务,扩展自 核心类型 Zip
Kotlin
tasks.create<Zip>("zip") {
description = "Archives sources in a zip file"
group = "Archive"
from("src")
setArchiveName("basic-demo-1.0.zip")
}
Groovy
task zip(type: Zip, group: "Archive", description: "Archives sources in a zip file") {
from "src"
setArchiveName "basic-demo-1.0.zip"
}
执行 zip
gradle zip
至此,一个简单的构建完成了。
分析构建过程
Gradle 提供了一个基于 web的构建视图——构建扫描
在执行时 使用 --scan 选项或者明确使用构建扫描插件都可以免费的在 https://scans.gradle.com 创建一个扫描视图分析
gradle zip --scan
在同一服务条款后会直接发送到 构建扫描的平台,复制下面的连接打开即可。
打开之后会有详细的项目构建分析
End
Gradle——创建简单的项目的更多相关文章
- Intellij创建简单Springboot项目
Intellij创建简单Springboot项目 第一步:选择创建新项目——file-new-project 第二步:选择项目类型——Spring Initializr-next 第三步:输入项目信息 ...
- 创建简单web项目
Intellij Idea直接安装(可根据需要选择自己设置的安装目录),jdk使用1.6/1.7/1.8都可以,主要是配置好系统环境变量,tomcat7上tomcat的官网下载压缩包解压即可. 一.创 ...
- 使用Gradle创建java web项目
什么是Gradle? Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具. 它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML ...
- 使用Intellij Idea创建简单Maven项目(转)
我是学Java Web的,基本靠自学,在网上收集了各种视频资料,逐一的看,代码逐一的敲.学习了这么久之前一直未成想过要把自己的学习路程记录下来,在网上也看到过很多人把自己的学习历程以及遇到的问题写在了 ...
- IDEA创建简单SpringBoot项目
环境:jdk 1.打开IDEA -->New --> Project -->Spring Initalizer-->next 2.此处,只做创建示例,所以next后Group等 ...
- truffle init 从零开始创建简单DApp项目
下面的部分软件需要FQ.这里默认你已经会***,不懂的可以自己搜索解决. 软件安装 chrome浏览器 下载地址 metamask插件 在谷歌应用商店中搜索metamask ganche(图形版) 下 ...
- IDEA创建简单SSM项目使用传统Jar包
#IDEA SSM项目使用传统Jar包 创建项目 下一步,命名 下一步,创建完成 下一步,创建资源文件夹resources 页面概览 左侧目录树 演示如下 一些简单的说明 其中包之间的层次调用 ent ...
- 手动创建简单webpack项目及React使用
一.创建基本的webpack4.x项目 1.运行 npm init -y 快速初始化项目 2.在项目根目录创建src的源代码目录和dist产品目录 3.在src目录下创建 index.html 4.使 ...
- 创建简单Maven项目
目录: Maven基础构建概念.仓库.构建与部署 Maven作用 Maven项目install Maven安装配置.目录结构.配置文件 配置Maven默认本地仓库 Maven常见命令 使用Maven ...
随机推荐
- Java中的Lambda表达式简介及应用
在接触Lambda表达式.了解其作用之前,首先来看一下,不用Lambda的时候我们是怎么来做事情的. 我们的需求是,创建一个动物(Animal)的列表,里面有动物的物种名,以及这种动物是否会跳,是否会 ...
- mvc区分页面内请求判断是否是Html.action或Html.RenderAction请求
ControllerContext.IsChildAction 来判断,如果用Html.Action或Html.RenderAction方法,这个属性返回true,否则返回false
- Windows Presentation Foundation (WPF) 项目中不支持xxx的解决
一般Windows Presentation Foundation (WPF) 项目中不支持xxx都是由于没引用相应的程序集导致,比如Windows Presentation Foundation ( ...
- 【CYH-02】NOIp考砸后虐题赛:转换式:题解
这道题真的不难吧. 如@AKEE@AKEE@AKEE 大佬所说,此题的确可以将n推广到一般情况. 但题面还是良心的只到了N<=4N<=4N<=4 以目前的题目来看,简单模拟即可. 分 ...
- koa2服务端使用jwt进行鉴权及路由权限分发
大体思路 后端书写REST api时,有一些api是非常敏感的,比如获取用户个人信息,查看所有用户列表,修改密码等.如果不对这些api进行保护,那么别人就可以很容易地获取并调用这些 api 进行操作. ...
- 个人永久性免费-Excel催化剂功能第22波-Excel文件类型、密码批量修改,补齐PowerQuery短板
Excel的多工作薄.多工作表批量合并功能,Excel用户很多这方面的使用场景,也促使了各大Excel各大插件们都在此功能上有所开发,体验程度不一,但总体能够满足大多数的应用场景,本人之前也开发个单独 ...
- Spring_AOP基于AspectJ的注解开发&JDBC的模板使用&事务管理(学习笔记3)
一:AOP基于AspectJ的注解开发 1,简单的实例: 1)引入相应的jar包 2)在配置文件里引入相关约束 <beans xmlns="http://www.springfra ...
- c语言进阶14-线性表之链表
一. 线性表的链式存储结构 1. 顺序存储结构不足的解决办法 前面我们讲的线性表的顺序存储结构.它是有缺点的,最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间.能不能想 ...
- Word公式显示为{EMBED Equation.DSMT4}
具体问题表现为: 添加了Mathtype公式后显示为{EMBED Equation.DSMT4}, 超链接显示为大花括号和描述文本, 页码显示为 page... 具体解决方法如下,(以Office2 ...
- MyEclipse2014破解版
百度云:链接:http://pan.baidu.com/s/1c3jKMa 密码:yss0 等版本)后,不要打开软件. 二.解压破解文件压缩包,得到一下文件列表: 三.双击run.bat,即可运行cr ...