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 ...
随机推荐
- 吴裕雄--天生自然PythonDjangoWeb企业开发:框架基础和技术选型
简单的Web Server import socket eol1 = b'\n\n' eol2 = b'\n\r\n' body = '''Hello,world!<h1>tszrwyx& ...
- shell脚本中执行sql命令
1.mysql 数据库表信息 2.shell脚本(a.sh)信息 #!/bin/sh mysql -u root << myInsert insert into test.t values ...
- MYSQL 查询指定日期后的15天
SELECT s.id, s.exhi_id, s.commission, s.order_main_id, s.create_date, s.fen_xiao_id, s.state, s.upda ...
- Java-用星号打印菱形
打印如图所示菱形9行9列(提示可以将菱形分成上下两个三角形,分析每行空格数和星号个数的关系) 代码如下: package com.homework.lhh; public class Ex20 { p ...
- LaTeX 使用笔记
实现一个归类样式,如图: 代码: \left\{ \begin{aligned} 监督学习 \left\{ \begin{aligned} 回归 \\ 分类 \end{aligned} \right. ...
- <c:foreach>指定循环次数
<c:forEach begin="0" end="4" var="i"> <c:set var="ans&qu ...
- 移动端禁止缩放<meta>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale= ...
- 二十 Spring的事务管理及其API&事务的传播行为,编程式&声明式(xml式&注解式,底层AOP),转账案例
Spring提供两种事务方式:编程式和声明式(重点) 前者需要手写代码,后者通过配置实现. 事务的回顾: 事务:逻辑上的一组操作,组成这组事务的各个单元,要么全部成功,要么全部失败 事务的特性:ACI ...
- Firefox中有时使用window.close()脚本无法关闭当前窗口
解决方法如下: 1.在Firefox浏览器的地址栏中输入about:config,即打开Firefox的配置页面 2.然后搜索dom.allow_scripts_to_close_windows,找到 ...
- topthink/think-swoole 扩展包的使用 之 Task
本想自己适配的,奈何keng貌似不少,所以果断选择官方提供的包来适配233... 默认条件:thinkphp5.1.*版本下,且安装了swoole扩展 主要演示:task 任务的投递 友情提示:在sw ...