0104 gradle入门
背景
gradle的官网是 www.gradle.org,标题介绍是: accelerate developer productivity,翻译过来:提高开发者的生产率;
简要介绍:从手机app到微服务,从小的创业公司到大型企业,gradle帮助团队构建,自动化,交付更好更快的软件。
三大特征
- Build Anything(构建一切)
你可以选择使用Java,C++,Python语言,单仓库或者多仓库,gradle可以在任何平台上部署打包,这都是依赖于gradle的无比灵活来构建的;
- Automate Everything(自动化一切)
使用gradle丰富的API和成熟的插件生态,建模,集成,系统化各种软件。整合这些插件可以完成有目的的自动化。
- Deliver Faster(极速交付)
优雅,极速的构建,从编译忽略到高级的缓存,甚至更多,gradle追求持续的性能,保证你的团队可以持续交付;
安装步骤
我使用的macos,这里我采用下载最新的原生包来安装gradle到我的环境;
步骤如下:
- 进入你的工作目录:
cd ~ - 下载指令:
wget https://downloads.gradle-dn.com/distributions/gradle-6.0.1-all.zip - 解压:
unzip gradle-6.0.1-all.zip - 重命名:
mv gradle-6.0.1 gradle - 进入执行目录:
cd gradle/bin - 复制执行目录地址:
pwd,复制的路径假设为 /usr/tool/gradle/bin - 我使用的ohMyZSH , 所以我在 我的~/.zshrc下增加路径
EXPORT PATH=$PATH:/usr/tool/gradle/bin - 验证:
gradle,看到gradle的版本号标识安装成功; - 删除下载的包节约空间:
rm -rf /usr/tool/gradle-6.0.1-all.zip
开始教程
java开发者,主要关注的是java方面的构建,先把自己放空,抛掉maven,从0开始;
java application
基本的java开发;
步骤:
mkdir demo_gradle_application;cd demo_gradle_application;gradle init- 介绍一下目录

settings.gradle.kts 这里配置项目的名称;
build.gradle.kts 这里配置仓库,插件和依赖;

- 构建
gradlew build
- 测试
测试覆盖报告在

- 运行
./gradlew run最后看到打印出hello world表示成功!
成果:
- 如何使用gradle生成一个java application;
- 生成的代码结构;
- 如何执行gradle构建以及查看测试报告;
- 如何执行java应用使用run任务通过gradle插件;
java library
java库,可以被其它项目引用或者说复用;
步骤:
- gradle init , 选择 library ;
- 结构如上图;
同application类型;
settings.gradle.kts 主要设置项目的名字
build.gradle.kts主要配置插件,依赖仓库,依赖;
源码,测试目录同maven的约定;
- ./gradlew build 构建jar包;
- 定制jar包
定制版本号: 在build.gradle.kts中 增加版本号;
version = "1.0-SNAPSHOT"
然后执行打包,可以得到带版本的jar包;
定制jar包的 library name 和 library version;
在build.gradle.kts中
tasks{
jar{
manifest{
mapOf("Implementation-Title" to project.name ,
"Implementation-Version" to project.version
)
}
}
}
- 生成jar包,
./gradlew jar - 生成API文档 ,
./gradlew javadoc
成果:
- 生成了java库;
- 生成文件的目录结构;
- 执行构建并查看测试报告;
- 定制生成jar包的版本和name
- 生成API文档;
java web
使用gradle创建web项目;
gradle有一个war插件用来构建javaWEB应用,并提供了一个gretty查来用来测试和部署web应用到jetty或者tomcat中;例子展示了如何构建一个简单的webapp并部署到jetty使用gretty插件,你也可以学到如何写servlet的单元测试通过使用Mockit框架,并学到如何使用gretty和selenium写功能测试;
目录说明
- src/main/java java源码目录
- src/main/webapp 页面目录
- src/test/java 测试代码目录
步骤:
- 引入依赖;
- servlet的代码
- 引入页面代码
- 引入 gretty插件;
- 模拟测试servlet, 使用mockito;
- 模拟功能测试,使用 webdriverManager, selenium;
- 跑测试;
成果:
- 使用war插件来定义web应用;
- 添加servlet和JSP;
- 使用gretty插件部署应用;
- 使用mockit单元测试;
- 使用gretty和selenum进行功能测试;
代码:https://github.com/carterbrother/springbootpractice/tree/master/demo_gradle_webapp
java springboot
idea中使用gradle
原创不易,转载请注明出处。
0104 gradle入门的更多相关文章
- 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程
之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...
- 项目自动化建构工具gradle 入门4——javaWeb在浏览器中显示helloWorld
在java应用中,其实做的最多的还是java web应用.所以现在我们做的就是用gradle构建一个简单的web项目,简单点,直接上代码吧. 1.进入目录D:\work\gradle\web,新建文件 ...
- 项目自动化建构工具gradle 入门3——生一个exe的helloWorld
前两次呢,我们能够用一个外部的jar 来实现输出helloWorld.但问题是我每次都要用java -jar 来执行,这样我们自己玩还可以,让用户玩就不好了.所以我们生成一个exe给他们吧.这次我们仍 ...
- 项目自动化建构工具gradle 入门2——log4j输出helloWorld
上一章节呢,有一个能跑的程序了.但是对做工程的人来说,用日志输出感觉比用System.out要有档次一点.比如使用log4j.直接上例子: 1进入D:\work\gradle\log目录 ,您电脑没 ...
- 【Gradle】Gradle入门
Gradle入门 配置Gradle环境 安装之前确保已经安装配置好Java环境,要求JDK6以上,并且在环境变量里配置了JAVA_HOME,查看Java版本可以在终端输入如下命令: java -ver ...
- gradle入门
gradle入门 简介: Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于 ...
- Java Gradle入门指南之内建与定制任务类(buildSrc、Groovy等)
上一篇随笔介绍了Gradle的安装与任务管理,这篇着重介绍Gradle的内建任务(in-built tasks)与自定义任务(custom tasks),借助Gradle提供的众多内建任务类型 ...
- 【Gradle教程】Gradle 入门
本文为我在学习群内分享时在B站直播分享时的文档,直播间地址 http://live.bilibili.com/22263819 PS:问一下,Linux下有什么好用的会议软件么? 知道的朋友烦请评论告 ...
- 项目自动化建构工具gradle 入门1——输出helloWorld
先来一个简单的例子,4个步骤: 1.进入D:\work\gradle\java 目录 ,您电脑没这目录? 那辛苦自己一级一级建立起来吧 新建文件build.gradle,文件内容是: apply p ...
随机推荐
- hadoop启动报错处理
1. hadoop启动报错 1.1. 问题1 util.NativeCodeLoader: Unable to load native-hadoop library for your ...
- 计算机网络历史与基本概念&分层与参考模型(TCP/IP与OSI)&通信过程
Definition: 计算机网络:使用单一技术相互连接的自主计算机的互联集合. 单台计算机独立自主(不受制于其他计算机),连接介质可以使光纤.铜线也可以是微波.红外.卫星. 互联网络(Interne ...
- 5 HTML脚本&字符实体&URL
HTML脚本: 用<script>标签定义客户端脚本,比如JavaScript script元素即可包含脚本语句,也可以通过src属性指向外部脚本文件 JavaScript常用于图片操作. ...
- Atcoder Beginner Contest 140E(多重集,思维)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;multiset<long long&g ...
- Systemverilog for design 笔记(七)
转载请标明出处 第一章 接口(interface) 1.1. 接口的概念 接口允许许多信号合成一组由一个端口表示. 1.2. 接口声明 //接口定义 Interface main_bus ...
- [经验] Java 使用 netty 框架, 向 Unity 客户端的 C# 实现通信 [1]
这是一个较为立体的思路吧 首先是技术选型: 前端 : HTML5 + jQuery ,简单暴力, 不解释 服务端 : Spring Boot + Netty + Redis/Cache 客户端 ...
- C# Stream篇(—) -- Stream基类
写在前头: Stream系列文章共收录7篇,本着备忘和归纳的目的本着备忘和归纳的目的,全部收录于本分类中. 下面是有原文连接,望各位看官还是到原作者处学习,毕竟CV过来的文字难免有走样之处. 原始连接 ...
- Laradock 使用中遇到的问题汇总
1.ErrorException] mkdir (): Permission denied 解决:权限不够,thinkphp5下,runtime 文件夹改777,文件所有者改为 laradock(进入 ...
- 使用switch编写一个购物管理系统
在编写过程中,可能没有做到语句的精简,这个是需要解决的事. package nzcc4; import java.util.Scanner; public class Shopmain { publi ...
- 解决modelsim破解在win10下无法生成license
显示没有找到mgls.dll,此时,这个教程能够帮助你. 1.右击搜索结果cmd,选择以管理员身份运行 2. 打开win64(进入安装目录的win64),也就是两个破解文件所在的路径,输入cd win ...
