Gradle+IDEA使用说明

Gradle+IDEA使用说明

导语:

IDEA拥有大量的JAVA开发者拥护,相比于开源的eclipse,IDEA拥有更简洁直观的界面,拥有更强大的自动补全功能,号称能“一路敲回车完成编码”。若是把IDEA和eclipse比做手机系统,IDEA就比如IOS,美观、强大、人性化、傻瓜化,官方就帮你解决了大部分问题与操做。eclipse更像android,自由、开放、高度可定制,经过一系列的插件也能够达到IDEA一样的、甚至更个性化的体验,可是操做难免让人感受复杂、上手难。html

Gradle做为build工具的新星,受到谷歌的大力拥护,直接钦定为AS的御用build工具,在java web方面也大有取代maven上位的趋势,已成为IDEA默认支持的构建工具。gradle最大的优点是能够直接在脚本中运行groovy语言,这就使得gradle具备很是强大的扩展性。java

使用IDEA+gradle所组成的工具为项目开发带来了极大的便利,熟练的使用它们相信会为咱们带来事半功倍的效果android

一,何为build工具

咱们写一个java web程序大体须要如下步骤呢:程序员

  1. 从版本控制系统下载基础源码
  2. 编写程序,并在这过程当中复制相应的依赖包到classpath目录下
  3. 编译java 文件,造成jar包
  4. 运行单元测试
  5. 生成代码覆盖度报告和测试报告
  6. 打包造成war文件
  7. 上传到测试服务器上,进行部署

在之前,这些操做都是须要咱们手动去完成的。好比当引入一个外部依赖时,咱们要专门去相应的地方拷贝获得jar包,或者获得源码编译出jar包,而后复制到classpath目录下。写完代码后,咱们须要手动使用编译工具编译,而后手动去运行测试工具进行单元测试,若是没问题的话,再手动打包成war包,而后手动上传到服务器指定目录部署。web

一个项目下来咱们将会在这些与写代码无关的事情上浪费大量时间,而这些行为很明显是重复的,彻底能够编写出相应的程序来帮助咱们自动的完成这一系列的操做。并且多人合做时,每一个人使用的外部依赖库的版本可能不同,当合并项目后有可能会由于版本的不一样带来BUG,并且这些BUG很是不容易让人发现,人们急需一个统一管理第三方依赖的工具。因而build工具出现了。spring

二,在IDEA中建立一个gradle构建的java web项目

最新版的IDEA默认集成了gradle,不用安装gradle程序就能够在IDEA中建立gradle管理的项目apache

1,建立项目

 
1.png

2,填写项目ID

PS:引自百度知道tomcat

groupid和artifactId被统称为“坐标”是为了保证项目惟一性而提出的,若是你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找搜索。服务器

groupId通常分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(由于tomcat是非营利项目),公司名称是apache,artigactId是tomcat。app

好比我建立一个项目,我通常会将groupId设置为cn.zr,cn表示域为中国,zr是我我的姓名缩写,artifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,你的包结构最好是cn.zr.testProj打头的,若是有个StudentDao,它的全路径就是cn.zr.testProj.dao.StudentDao

 
2.png

3,配置gradle

 
3.png

4,填写工程名

 
4.png

5,获得的最终目录结构和build.gradle文件

 
5.png

三,gradle使用说明

gradle是一个工具,经过执行build.gradle来实现build的功能,build.gradle这个build脚本是须要程序员本身来编写的,可使用groovy语言来编写,功能强大并且直观。也能够直接引入其余人已经编写好的脚本或工具来实现build,引入方法为经过apply plugin: 'plugin名'语句实现,plugin能够是build脚本也能够是java程序。

gradle官方提供了不少经常使用的build plugin,好比咱们此次建立项目引入的‘war’plugin,他是继承自‘java’这个plugin,在实现‘java’plugin中关于build java程序的基础上,额外定义了java web项目目录、打包war包等功能,剔除了打包jar包的功能,具体详情能够在gradle官方文档中查看到。

build操做经过引入相应的plugin基本就能够实现了,在平时的使用过程当中,咱们主要对gradle的操做是添加第三方依赖,让gradle帮咱们管理这些第三方依赖。

经过手动操做引入一个第三方依赖(例如spring core)

  1. 前往spring官网找到其提供的spring core下载地址
  2. 选择一个须要的版本下载下来
  3. 解压,将获得的jar包移动到咱们项目的classpath目录下

只需三步,看起来并非很复杂。可是一个项目须要引入的第三方依赖的数量每每是十分巨大的,并且假如咱们下载的spring core版本是4.3.6,而且这是一个多人共同协做的项目,当你们的工做合并起来时,若是有人使用的是4.2.1版本,咱们是很难发现这个不一样的,而这却可能致使BUG。同时,要删除某些再也不须要的依赖时咱们只能去classpath目录下找到它并手动删除掉。

使用gradle引入一个第三方依赖(例如spring core)

gradle兼容maven仓库,因此能够直接使用maven仓库来导入第三方依赖。maven仓库是按照必定协议来存放各类第三方依赖库的空间,能够经过groupID和artifactid定位来找到本身须要的第三方依赖库。

  1. 在build.gradle中指定用来下载依赖库的仓库,可使用网址或者本地地址来指定,也可使用“mavenCentral()”这些gradle定义的地址来使用默认的仓库。
  2. 在dependencies中使用写入依赖库所在组(group),名称(name),版本号(version)

仓库只须要定义一次,经过上面的配置gradle就会从定义好的仓库中找到相应的依赖包下载下来并编译好,而后就能够直接在代码中使用了。在mvnrepository这个远程maven仓库中,它提供了引入相应依赖包的配置,只需复制下来黏贴到buil.gradle文件中便可。

 
7.png

经过build工具管理依赖库的优势

  1. 方便,不须要进行各类文件操做。
  2. 直观,项目中使用了哪些第三方依赖一目了然
  3. 统一,同一项目中的成员只要保证使用同一build脚本就能够作到环境和依赖包的统一

四,关于Javaweb中gradle的目录配置和IDEA对gradle的适配

java web有本身的程序包规范(封包格式为.war),相似于安卓中的apk文件。将其移动到web服务器(如tomcat)的相应目录中,web服务器就会将其解压、部署,将网站跑起来。固然也能够直接将其解压,将获得的目录移动到服务器程序指定的目录下(相似于Apache的www目录)便可。

war包结构

 
8.png

gradle定义的项目结构(准确来讲是‘war’这个plugin定义的)

将项目目录结构定义的有别于程序包目录结构,是为了方便程序员在编写程序的时候更加直观的管理项目文件,由于程序包定义的目录结构不必定适合人们直观的对其进行操做。好比war包专门定义了一个Resource目录,方便用户集中管理资源文件和各类配置文件

 
9.png

IDEA的项目构建配置(ctrl+alt+shift+s)

IDEA对各类构建工具的适配就主要体如今这个界面,在这个界面能够提供可视化的构建操做

相关文章
相关标签/搜索