背景

gradle的官网是 www.gradle.org,标题介绍是: accelerate developer productivity,翻译过来:提高开发者的生产率;

简要介绍:从手机app到微服务,从小的创业公司到大型企业,gradle帮助团队构建,自动化,交付更好更快的软件。

三大特征

  1. Build Anything(构建一切)

你可以选择使用Java,C++,Python语言,单仓库或者多仓库,gradle可以在任何平台上部署打包,这都是依赖于gradle的无比灵活来构建的;

  1. Automate Everything(自动化一切)

使用gradle丰富的API和成熟的插件生态,建模,集成,系统化各种软件。整合这些插件可以完成有目的的自动化。

  1. Deliver Faster(极速交付)

优雅,极速的构建,从编译忽略到高级的缓存,甚至更多,gradle追求持续的性能,保证你的团队可以持续交付;

安装步骤

我使用的macos,这里我采用下载最新的原生包来安装gradle到我的环境;

步骤如下:

  1. 进入你的工作目录: cd ~
  2. 下载指令: wget https://downloads.gradle-dn.com/distributions/gradle-6.0.1-all.zip
  3. 解压: unzip gradle-6.0.1-all.zip
  4. 重命名: mv gradle-6.0.1 gradle
  5. 进入执行目录: cd gradle/bin
  6. 复制执行目录地址: pwd ,复制的路径假设为 /usr/tool/gradle/bin
  7. 我使用的ohMyZSH , 所以我在 我的~/.zshrc下增加路径 EXPORT PATH=$PATH:/usr/tool/gradle/bin
  8. 验证:gradle ,看到gradle的版本号标识安装成功;
  9. 删除下载的包节约空间:rm -rf /usr/tool/gradle-6.0.1-all.zip

开始教程

java开发者,主要关注的是java方面的构建,先把自己放空,抛掉maven,从0开始;

java application

基本的java开发;

步骤:

  1. mkdir demo_gradle_application;
  2. cd demo_gradle_application ;
  3. gradle init
  4. 介绍一下目录

settings.gradle.kts 这里配置项目的名称;

build.gradle.kts 这里配置仓库,插件和依赖;

  1. 构建

gradlew build

  1. 测试

测试覆盖报告在

  1. 运行

./gradlew run 最后看到打印出hello world表示成功!

成果:

  • 如何使用gradle生成一个java application;
  • 生成的代码结构;
  • 如何执行gradle构建以及查看测试报告;
  • 如何执行java应用使用run任务通过gradle插件;

代码

java library

java库,可以被其它项目引用或者说复用;

步骤:

  1. gradle init , 选择 library ;
  2. 结构如上图;

同application类型;

settings.gradle.kts 主要设置项目的名字

build.gradle.kts主要配置插件,依赖仓库,依赖;

源码,测试目录同maven的约定;

  1. ./gradlew build 构建jar包;
  2. 定制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
)
}
}
}
  1. 生成jar包, ./gradlew jar
  2. 生成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 测试代码目录

步骤:

  1. 引入依赖;
  2. servlet的代码
  3. 引入页面代码
  4. 引入 gretty插件;
  5. 模拟测试servlet, 使用mockito;
  6. 模拟功能测试,使用 webdriverManager, selenium;
  7. 跑测试;

成果:

  • 使用war插件来定义web应用;
  • 添加servlet和JSP;
  • 使用gretty插件部署应用;
  • 使用mockit单元测试;
  • 使用gretty和selenum进行功能测试;

代码:https://github.com/carterbrother/springbootpractice/tree/master/demo_gradle_webapp

java springboot

idea中使用gradle

原创不易,转载请注明出处。

0104 gradle入门的更多相关文章

  1. 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程

    之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...

  2. 项目自动化建构工具gradle 入门4——javaWeb在浏览器中显示helloWorld

    在java应用中,其实做的最多的还是java web应用.所以现在我们做的就是用gradle构建一个简单的web项目,简单点,直接上代码吧. 1.进入目录D:\work\gradle\web,新建文件 ...

  3. 项目自动化建构工具gradle 入门3——生一个exe的helloWorld

    前两次呢,我们能够用一个外部的jar 来实现输出helloWorld.但问题是我每次都要用java -jar 来执行,这样我们自己玩还可以,让用户玩就不好了.所以我们生成一个exe给他们吧.这次我们仍 ...

  4. 项目自动化建构工具gradle 入门2——log4j输出helloWorld

    上一章节呢,有一个能跑的程序了.但是对做工程的人来说,用日志输出感觉比用System.out要有档次一点.比如使用log4j.直接上例子: 1进入D:\work\gradle\log目录  ,您电脑没 ...

  5. 【Gradle】Gradle入门

    Gradle入门 配置Gradle环境 安装之前确保已经安装配置好Java环境,要求JDK6以上,并且在环境变量里配置了JAVA_HOME,查看Java版本可以在终端输入如下命令: java -ver ...

  6. gradle入门

    gradle入门 简介: Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于 ...

  7. Java Gradle入门指南之内建与定制任务类(buildSrc、Groovy等)

        上一篇随笔介绍了Gradle的安装与任务管理,这篇着重介绍Gradle的内建任务(in-built tasks)与自定义任务(custom tasks),借助Gradle提供的众多内建任务类型 ...

  8. 【Gradle教程】Gradle 入门

    本文为我在学习群内分享时在B站直播分享时的文档,直播间地址 http://live.bilibili.com/22263819 PS:问一下,Linux下有什么好用的会议软件么? 知道的朋友烦请评论告 ...

  9. 项目自动化建构工具gradle 入门1——输出helloWorld

    先来一个简单的例子,4个步骤: 1.进入D:\work\gradle\java 目录  ,您电脑没这目录? 那辛苦自己一级一级建立起来吧 新建文件build.gradle,文件内容是: apply p ...

随机推荐

  1. day5-2正则表达式

    正则表达式: 正则表达式对象的创建 1,构造函数 var pattern =new RegExp("正则表达式","修饰符") var pattern =new ...

  2. 利用DOCKER实现云桌面的开发环境初步设想

    想法阶段,持续更新中 一.准备一台开发专用服务器 二.建立企业私有镜像仓库 三.建立开发环境镜像并提交到私有镜像仓库 开发镜像的要求: 1.安装vnc服务,ssh服务 vnc密码的设定 2.安装开发环 ...

  3. Oracle个人自学笔记

    SET LINESIZE 300;//设置每一行的长度 SET PAGESIZE 100;//设置每一列的长度 CONN 用户名/密码 [AS SYSDBA],如果是sys用户一定要加上SYSDBA ...

  4. Java--对象与类(二)

    final 实例域 可以将实例域定义为final.构建对象时必须初始化这样的域.也就是说在一个构造器执行之后,这个域被设置,并且之后无法对其修改 final 修饰符大多应用于基本(primitive) ...

  5. LeetCode 21. Merge Two Sorted Lists(合并两个有序链表)

    题意:合并两个有序链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next ...

  6. bash脚本编程

    一.bash中的变量 变量类型: 本地变量:只对当前shell进程有效,对其子shell以及其它shell都无效;   定义变量:[set]Var_name="value" 变量赋 ...

  7. c语言中“#if 0 / #if 1 ... #endif”的作用

    原帖地址:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=2028608&bbs_page_no=1005&bbs_id=9999 1. ...

  8. R-CNN算法中NMS的具体做法

    假设有20类,2000个建议框,最后输出向量维数2000*20,则每列对应一类,一行是各个建议框的得分,NMS算法步骤如下: ① 对2000×20维矩阵中每列按从大到小进行排序: ② 从每列最大的得分 ...

  9. Docker常用命令(命令大全)

    容器生命周期管理 1. docker run:创建一个新的容器并运行一个命令 2. Docker start/stop/restart - docker start:启动一个或多个已经被停止的容器 - ...

  10. vue使用H5实现滚动到页面底部时加载数据

    使用原生vue实现瀑布流,发现无法实现小程序那种滚动到地步触发加载效果,只能自己研究了 实现效果: 实现代码: 首先添加监听滚动事件 mounted() { window.addEventListen ...