背景

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. JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取

    创建连接对象的三种方式 //第一种方式 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ ...

  2. oracle SQL 练习

    COURSE 表 DROP TABLE "SCOTT"."course"; CREATE TABLE "SCOTT"."cours ...

  3. [libpng]CMake+VS2015下编译libpng,及使用小例

    编译前的工作 在编译libpng前,需要把zlib编译好,并加载到编译环境里. CMake + VS2015 下编译zlib,及使用小例 下载与解压 libpng的官网是 http://www.lib ...

  4. 「HNOI2016」大数

    题目描述 给定一个质数\(p\)和一个数字序列,每次询问一段区间\([l,r]\), 求出该序列区间\([l,r]\)内的所有子串,满足该子串所形成的数是\(p\)的倍数(样例的解释也挺直观的) 基本 ...

  5. js中for循环(原生js)

    1,普通for循环,经常用的数组遍历 var arr = [1,2,3,4,5]; for ( var i = 0; i <arr.length; i++){ console.log(arr[i ...

  6. .net设计模式

    1.单例模式 public sealed class Singleton { static intance=null; static readonly object padlock=new objec ...

  7. idea中的Storm1.1.1工程自定义日志级别

    在idea中跑storm工程时,因为Storm中的日志级级别默认为INFO,控制台总是打印出很多没用的INFO级别的日志,导致我自己在代码中的sout内容看不清楚. 于是想着自定义日志的打印级别为WA ...

  8. 契约精神、尊重规则、SOP,对制造业来说是蜜糖还是毒药?

    契约精神.尊重规则.执行SOP,这些词儿都天然带有光环,也有很多相关的好故事,全球范围内的企业家都对其推崇备至,摆出一副虔诚教徒的模样,事实上,缺乏契约精神.不遵守规则比之缺乏资本.丢掉订单更加不可接 ...

  9. django静态文件处理

    django静态文件处理   从开始接接触python这门语言已有四年了,中间陆续的学习,又不断的忘记,所以基本上是没有系统的知识体系.但是挺喜欢这门简洁,强大的动态语言.最近自己私人有个项目要做,虽 ...

  10. 解决modelsim破解在win10下无法生成license

    显示没有找到mgls.dll,此时,这个教程能够帮助你. 1.右击搜索结果cmd,选择以管理员身份运行 2. 打开win64(进入安装目录的win64),也就是两个破解文件所在的路径,输入cd win ...