0104 gradle入门

背景

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. 介绍一下目录

file

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

file

  1. 构建
gradlew build
  1. 测试
测试覆盖报告在

file

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

成果:

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

代码

java library

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

步骤:

  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/carterbrot...

java springboot

idea中使用gradle

原创不易,转载请注明出处,欢迎沟通交流。
Image placeholder
Corn_without_sugar
未设置
  59人点赞

没有讨论,发表一下自己的看法吧

推荐文章
集成 think-ORM 的 symfony bundle thinkorm-bundle

thinkorm-bundleSymfonyThinkOrmBundle关于thinkorm-bundle允许在你symfony使用thinkorm.所安装$composerrequireccwwwo

20200104am

 20200104 原生js 请你简述原型和原型链 什么是原型链:只要是对象就有原型, 并且原型也是对象, 因此只要定义了一个对象, 那么就可以找到他的原型, 如此反复, 就可以构成一个对象的序列, 

Gradle Builds Everything —— Task 实例

上文讲述了Gradle中关于任务的基础概念,本文开始讲述下Task是如何定义的。为了方便,我们的语境分不开Gradle和AndroidGradlePlugin,因此此处不脱离Android环境来介绍G

利用 samba 实现 Ubuntu18.04 与 Windows10 的文件共享

在Ubuntu18.04上安装samba服务 打开终端,使用下面指令安装samba服务。 $sudoaptinstallsamba $sudoaptinstallsmbclient 在Ubuntu1

PHP 安全问题入门:10 个常见安全问题 + 实例讲解

相对于其他几种语言来说,PHP在web建站方面有更大的优势,即使是新手,也能很容易搭建一个网站出来。但这种优势也容易带来一些负面影响,因为很多的PHP教程没有涉及到安全方面的知识。 此帖子分为几部分

解读2019华为第001号文件:AI时代软件开发的第一要义是可信

晓查发自凹非寺量子位出品|公众号QbitAIAI加持,万物互联、万物智能。我们在享受科技进步的同时,软件开发行业却面临着更大的挑战。过去,软件出现安全问题或许仅仅意味着经济损失,但当走向产业互联网时代

嗨!你的 2019 晒好封存了吗?快来看程序老兵的 2019 吧!

时间过得真是太快快快了,2019还剩下最后几个小时了。回望即将过去的这一年,老兵哥做了不少事情,有计划内的,也有计划外的,当然还有不少事情没做。赶在最后时刻晒一晒我的2019年,希望从成绩荣誉中获得一

Go语言高级编程_4.4 gRPC入门

4.4gRPC入门 gRPC是Google公司基于Protobuf开发的跨语言的开源RPC框架。gRPC基于HTTP/2协议设计,可以基于一个HTTP/2链接提供多个服务,对于移动设备更加友好。本节将

JanusGraph索引入门及模糊查询

JanusGraph模糊查询与索引1.索引JanusGraph支持两种不同类型的索引来加快查询处理:图形索引和中心顶点索引 图形索引使从由其属性标识的顶点或边列表开始遍历的全局检索操作在大型图形上高效

0103-springmvc的基本流程

背景现在的it研发,已经从管理系统时代迈入了互联网系统时代。页面开发已经从基于JSP+struts转变为为前后端分离的方式(springMVC+JS);思想MVCmvc框架不仅适用于java的开发,也

回顾2019年度京东集团10件大事:不忘初心,坚定前行

岁月不居,时节如流。2019,京东不忘初心,风雨兼程。在“以零售为基础的技术与服务企业”定位的指引下,京东各项业务有序发展,经营业绩屡创新高,技术转型成果显著,服务水平全面提升。感谢有你,给予我们信赖

20200103am

 20200103 css 请简述一下css选择器 \- 选择器类型:     - ID  #id     - class  .class     - 标签  p     - 通用  \*

20200103pm

 20200103 框架 vue的dom-diff是怎么样实现的?https://mp.weixin.qq.com/s/B0... 前言 文章开篇,我们先思考一个问题,大家都说 virtual 

20200107pm

 20200107 html html中有哪些块级元素?有哪些行内元素? \- 行内元素 一个行内元素只占据它对应标签的边框所包含的空间 一般情况下,行内元素只能包含数据和其他行内元素

0107 spring操作数据库的3个架子

背景数据库开发是java的核心内容之一,基础就是jdbc了;然而直接使用jdbc,需要写大量的try-catch-finally模板代码;管理系统使用hibernate作为orm框架比较方便,遵循jp

解密:华为CloudLink视讯引领行业的“金刚钻”

“华为新一代CloudLink视讯解决方案,完全基于鲲鹏+昇腾双引擎打造的全新平台、全系列智能协作终端等一系列新产品,未来华为视讯平台将全部更新换代。”华为IT产品线企业通信领域总裁孙权在接受IT16

Oracle告警日志ora-04030

一oracle11g出现ORACLEORA-04030之outofprocessmemorywhentryingtoallocate报错,查询ORACLE官方MOS确定是:BUG11852492,原因

2019全球PostgreSQL生态报告出炉,PG为何从RDBMS中脱颖而出?

墨墨导读:本文是近期ScaleGrid发布的2019PG趋势报告,从不同的角度解读了PostgreSQL如何在众多优秀的RDBMS中脱颖而出,原文:https://scalegrid.io/blog/

1万属性,100亿数据,每秒10万吞吐,架构如何设计?

有一类业务场景,没有固定的schema存储,却有着海量的数据行数,架构上如何来实现这类业务的存储与检索呢?58最核心的数据“帖子”的架构实现技术细节,今天和大家聊一聊。一、背景描述及业务介绍什么是58

win10美化,让你的win10独一无二,与众不同!

1.原则美化之前,得先有一个目标对不对,笔者是一个喜欢简单的人,因此美化本着三大原则:简单,干净,整洁.呃....好像很抽象的样子,上图吧.反正没图没真相.怎么样,还可以吧,没有任何多余的东西.再来一

2019年7月数据库流行度排行:Oracle王者归来获大幅增长

2019已然走过一半,DB-Engines的数据库流行度排行榜7月出炉,这可以算是数据库流行度的半年报了。7月的明星产品是Oracle,其积分大幅增长了22分,较去年同期增长了43分,这说明Oracl

OOW2019 :Oracle数据管理技术创新盘点

Oracle作为传统关系型数据库的霸主,不管是数据库性能还是商业上,一直以来都是全球各大数据库厂商致力追赶的对象。近年来,全球云数据库市场迅速发展,Gartner预测,到2023年,世界上四分之三的数

Oracle ADW业务数据平台点亮DTCC2019数据库技术大会!

数字大脑、互联网+、智能+、人工智能、边缘计算……信息技术领域好像从不缺少概念,但无论世界如何变化,数据是一切业务的核心。要想有效管理、分析和挖掘数据带来的价值,数据库一定是必需品。2019年5月8日

LeanCloud 2019 回顾

在过去的一年里,数万新用户选择了LeanCloud,开发者在我们的平台上创建了数万新应用。尽管在6月遇到了一些因外部因素带来的困难,2019年仍然是LeanCloud实现整体盈利的第一年。这离不开用户

04.0 表单

表单是我们平常编写Web应用常用的工具,通过表单我们可以方便的让客户端和服务器进行数据的交互。对于以前开发过Web的用户来说表单都非常熟悉,但是对于C/C++程序员来说,这可能是一个有些陌生的东西,那