从零开始,跟我一起做jblog项目(三)从Maven到Gradle

http://www.cnblogs.com/newflydd/p/4972922.html?utm_source=tuicool&utm_medium=referral
********************************************************************************

从零开始,跟我一起做jblog项目(一)引言

从零开始,跟我一起做jblog项目(二)Maven

从零开始,跟我一起做jblog项目(三)从Maven到Gradle

上一节讲到项目构建工具Maven,对JAR包的管理不可谓不强大

博主在使用maven引入Spring框架时,了解到Spring推荐使用gradle工具来构建项目

百度了一下,发现Gradle也是一套很优秀的项目构建工具

Gradle使用Groovy语言配置项目和依赖,在极大地提升灵活性和配置性之外,甚至配置代码要比XML结构的POM文件少很多

鉴于我希望将jblog打造成一款modern的小型个人博客系统

而gradle的首页上介绍自己为Modern Open-Source Enterprise Build Automation

所以我决定将项目原型从maven构建转移为gradle构建

目前关于Gradle的教程还比较零散,下面我会一步一步演示如何将Gradle集成到myeclipse中去

首先,到Gradle官网下载最新版的gradle

下载地址是http://gradle.org/gradle-download/

博主下载的是2.8版本,写这篇文章的时候已经更新到2.9了

下载下来解压到任意目录

然后配置Windows环境变量,一共要配置三个,分别如下:

GRADLE_HOME:你的gradle解压路径,例如:D:\Workspaces\gradle-2.8

GRADLE_USER_HOME:你希望作为本地仓库的路径,自己建一个名为.gradle的路径,例如:D:\Workspaces\.gradle

path:这个不用说,系统路径,可以在cmd中直接敲gradle命令的,在path最后添加:%GRADLE_HOME%\bin;

这三个配置好了,我们初步验证一下,打开cmd,任意路径下敲入gradle -v命令,出现下面的响应就算安装成功了

关于gradle的详细命令和用法,大家可以参考下面的教程

http://wiki.jikexueyuan.com/project/gradle/

建议快速阅读上面的教程后,我们来将gradle植入eclipse/myeclipse中

打开eclipse,进入marketplaces,搜索gradle,找到Gradle IDE Pack,经过博主测试这个插件是最好用的

安装好Gradle IDE Pack插件后,重启eclipse,新建一个最简单的JAVA Project,或者试试Web Projec也可以

在项目根目录下新建一个build.gradle文件,如图所示

编辑build.gradle配置文件,示例如下:

apply plugin: "java"
apply plugin: "eclipse"

sourceCompatibility = 1.8
version = ‘1.0‘

configurations {
    provided
}

sourceSets {
    main.compileClasspath += configurations.provided
    test.compileClasspath += configurations.provided
    test.runtimeClasspath += configurations.provided
}

repositories {
    mavenLocal()
    maven {url "http://maven.oschina.net/content/groups/public/"}
    mavenCentral()
}

dependencies {
    compile "org.hibernate:hibernate-core:5.+"
    testCompile "junit:junit:4.7"
    provided "javax.servlet:javax.servlet-api:4.+"
}

//注意下面这个配置,新版本gradle如果不使用数组添加的话会导致eclipse频繁报错
eclipse.classpath.plusConfigurations += [configurations.provided]

保存build.gradle文件后,右键project,选择configure,选择convert to gradle project,为项目添加gradle特性

添加完gradle特性后,我们来让eclipse将build.gradle中定义的几个依赖包加入到项目中来

在这之前还需要配置一下Gradle IDE Pack插件,eclipse的window->preferencecs->Gradle,配置我们本地的gradle路径

配置好了以后就万事具备了,我们来试验一下,如何将build.gradle文件中定义的依赖引入eclipse环境中

右击project项目,选择gradle,选择Enable Dependency Management,让插件来打开依赖管理

打开之后,仍然右键项目,gradle->Refresh Dependencies,刷新一下依赖列表

在后台,gradle将按照上述文件的定义,依次检索我们系统中的maven本地仓库,chinaos提供的中国镜像仓库,以及maven中央仓库

将所需要的包下载到配置的gradle本地仓库中,再引入到eclipse的classpath中,效果如下图所示:

至此,关于gradle集成到eclipse的所有工作就结束了,项目编写过程中,如果要继续引入JAR包,就在build.gradle文件中添加

然后刷新一下gradle的依赖,就能实时添加到eclipse的环境中去了

最后着重讲解一下provided的scope(有效依赖范围),上一篇讲到maven,其中配置依赖的scope常用的有下面几种

compile:编译,测试,打包时都需要依赖,比如spring、hibernate、struts等

test:测试时需要依赖,常见的有junit

provided:一般由容器提供,只有写代码时需要依赖,比如servlet

runtime:打包运行时需要依赖

转移到gradle以后,gradle默认只为我们提供了四种scope,如下:

compile:编译范围依赖在所有的 classpath 中可用,同时它们也会被打包

runtime:依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要 JDBC API JAR,而只有在运行的时候才需要 JDBC 驱动实现

testCompile:测试期编译需要的附加依赖

testRuntime:测试运行期需要

可以看到gradle默认并未提供类似provided的scope,那比如我们需要写web project,则需要引入servlet包,而这时就比较麻烦

我们可以向eclipse的build path手工添加tomcat下的servlet包,但那样未免显得太low了,毕竟我们已经选择使用项目构建工具来管理我们的JAR包了

别着急,gradle毕竟是使用一种编程语言来配置项目构建的,所以它的灵活性相当高,在上述的配置文件中,我们人为定义了一个provided的scope

并且将这个provided使用sourceSet集合定义了范围,明确了在main目录的compile期间需要依赖,在test目录的编译期间和运行期间需要依赖

言下之意就是在main目录的运行期间不需要依赖喽,也就是运行时不需要将此provided范围的依赖打包

最后配合eclipse插件,向eclipse的classpath中添加了这一provided范围,结果eclipse会将servlet引入到项目依赖中。

时间: 2024-09-30 20:02:59

从零开始,跟我一起做jblog项目(三)从Maven到Gradle的相关文章

从零开始,跟我一起做jblog项目(二)从Maven到Gradle

从零开始,跟我一起做jblog项目(一)引言 从零开始,跟我一起做jblog项目(二)Maven 从零开始,跟我一起做jblog项目(二)从Maven到Gradle 上一节讲到项目构建工具Maven,对JAR包的管理不可谓不强大 博主在使用maven引入Spring框架时,了解到Spring推荐使用gradle工具来构建项目 百度了一下,发现Gradle也是一套很优秀的项目构建工具 Gradle使用Groovy语言配置项目和依赖,在极大地提升灵活性和配置性之外,甚至配置代码要比XML结构的POM

从零开始,跟我一起做jblog项目(一)引言

从零开始,跟我一起做jblog项目(一)引言 想做一个java版的blog,源自一个很久之前的想法 当时刚学习JAVA的web编程 想买自己的域名,自己的VPS,安装自己的WEB服务 用google analysis分析blog的流量(貌似现在国内已经用不了了,用CNZZ或者百度统计吧) 用SSH框架,用lucene做检索,用freemarker写模板,用ZK做后台 在blog里写代码,写文章,写算法,或者写ACM的解题报告,又或者设计页面布局 JAVA的开源blog不多,大多blog都是php

从零开始,跟我一起做jblog项目(二)Maven

从零开始,跟我一起做jblog项目(一)引言 从零开始,跟我一起做jblog项目(二)Maven maven是一个项目管理工具,尤其适用于JAVA世界 在jblog的开发前期,还没有系统使用过maven 只是在有一次合作开发过程中使用过subclipse以及SVN版本控制,当时了解过maven的一些知识 在正儿八经学习了<Maven实战>这本电子书以后,我认为maven是每一个JAVA程序员都需要了解并使用的 为什么?因为JAVA的世界里,你不可能所有东西都自己来写 要引入的JAR包实在太多,

三种Maven搭建私服的管理软件

Artifactory搭建maven私服 1 概 述 在我们的项目开发中通常希望将很多公用的东西提成一个工具工程,然后这个工程可以以maven依赖的形式让其他项目进行添加.这就是以使用Artifactory来建立maven私服. 2具体步骤 (1)下载Artifactory.下载地址:Artifactory (2)直接解压下载好的zip文件,并且点击...\artifactory-3.9.2\bin目录下的artifactory.bat进行安装,当出现 #####################

三、自动化测试平台搭建-django-如何用mysql数据库做web项目

前景:django自带的数据库是sqlite3,这是一种轻量级数据库,一般用于手机中,web项目用的大多数还是mysql,这次做一个项目'图书-英雄'信息管理 1.在家目录下的Desktop创建一个文件夹,在这个文件夹下创建一个名为pytest1虚拟环境(第一篇已经说过怎么安装虚拟环境) (1)cd ~/Desktop (2)mkdir project_1 (3)mkvietualenv -p python3.5 pytest1  #创建虚拟环境 (4)workon pytest1 #进入虚拟环

android 实践项目三

android 实践项目三 本周我主要完成的任务是将代码进行整合,然后实现百度地图的定位与搜索功能.在这次实现的 图形界面如下: 在本周的工作中主要的实现出来定位与收索的功能,在地图中能实现了定位,显示当前的位置, 不知到为什么不显示地图,经过查找资料可能因为当前的SDK本版太高了,不匹配.所以在下周 图像的显示问题.下面是我的主要贴上我的布局代码 地图的布局: 本周的总结 做项目是学习知识最快的方式,即能让我们碰见各种问题,也让我们去解决各种问题.在项目中感觉自己 的水平有限,还需要更加努力的

做web项目时对代码改动后浏览器端不生效的应对方法(持续更新)

做web项目时,常常会遇到改动了代码,但浏览器端没有生效,原因是多种多样的,我会依据我遇到的情况逐步更新解决的方法 1.执行的时候採用debug模式,普通情况下使用项目部署button右边那个button下的tomcat7中的run即可,假设使用的是serves中的run serves,这样的情况貌似不会自己主动编译 2.点击project菜单下的clean选项,在打开的窗体中选择你使用的项目,ok,这样会删除tomcat容器中关于该项目的一些信息,然后又一次部署,执行 3.删除电脑中tomca

做web项目时对代码修改后浏览器端不生效的应对方法(持续更新)

做web项目时,经常会遇到修改了代码,但浏览器端没有生效,原因是多种多样的,我会根据我遇到的情况逐步更新解决办法 1.运行的时候采用debug模式,一般情况下使用项目部署按钮右边那个按钮下的tomcat7中的run就行,如果使用的是serves中的run serves,这种情况貌似不会自动编译 2.点击project菜单下的clean选项,在打开的窗口中选择你使用的项目,ok,这样会删除tomcat容器中关于该项目的一些信息,然后重新部署,运行 3.删除电脑中tomcat文件夹,重新解压,然后在

MVC4商城项目三:分部视图在导航条上的应用

写了几天发觉大部分时间用在JS上了,本来想写个musicstore,却加了框架,然后又想用后台,然后又想用上bootstrapt,然后又想弄权限设计,然后又想………… 看来是想多了~ 好吧,最近把后台搭起来了,用了metronic.bootstrap, 真心很强大.功能很多,为了节约时间成本就在它上面改吧.先上图看看 框架演示地址:http://dreamsky.github.io/main/blog/metronic-bootstrap/index.html 下载地址:http://dream