从零开始,跟我一起做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引入到项目依赖中。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这里有几个建议的 GitHub 项目,可以帮助你练习 Java Web 的开发技能: 1. Spring Boot 示例项目:https://github.com/spring-projects/spring-boot/tree/main/spring-boot-samples 2. JavaEE 基础教程项目:https://github.com/javaee-samples/javaee7-samples 3. 电子商务网站:https://github.com/JavaEE-Ecommerce/Ecommerce 4. 博客系统:https://github.com/crossoverJie/SSM 5. 企业信息管理系统:https://github.com/yongzhichao/SSM 这些项目大多使用了 Spring 框架,并配有详细的文档和注释,可以帮助你了解 Java Web 的开发流程和技巧。 ### 回答2: 以下是一些推荐的Java Web的GitHub项目: 1. Spring PetClinic:这是一个经典的示例项目,演示了如何使用Spring框架构建一个完整的Java Web应用程序。它包含了许多核心Spring概念和功能,如依赖注入、AOP、MVC等。 2. JHipster:这是一个开发现代Web应用程序的快速工具和框架。它基于Spring Boot和Angular,并提供了许多开箱即用的功能和可扩展的模板。可以用它来快速构建一个现代化的Java Web应用程序。 3. Vaadin:这是一个用于构建富客户端Web应用程序的Java框架。它提供了一组组件和工具,使开发者可以使用Java编写前端界面,并且可以很容易地与后端数据进行交互和处理。 4. Activiti:这是一个轻量级的开源工作流和业务流程管理框架。它基于Java,可以帮助开发者定义、执行和管理工作流和业务流程。可以使用它来构建一些复杂的Java Web应用程序,如订单处理系统或审批流程系统。 这些项目提供了不同领域和不同复杂性的示例,可以帮助开发者学习和练习Java Web开发。当然,还有很多其他优秀的Java Web项目可以探索和学习,建议开发者多多尝试和实践。 ### 回答3: 以下是一些推荐练习 Java Web 的 GitHub 项目: 1. Spring PetClinic(https://github.com/spring-projects/spring-petclinic) 这个项目是使用 Spring 框架实现的一个宠物诊所管理系统。通过阅读这个项目的源代码,你可以学习到如何使用 Spring MVC,Spring Data JPA 和 Thymeleaf 等技术来开发一个基本的 Java Web 应用程序。 2. JHipster(https://github.com/jhipster/jhipster-sample-app) JHipster 是一个用于生成 Java Web 应用程序的脚手架工具。这个项目是 JHipster 的示例应用程序,它演示了如何使用 AngularJS,Spring Boot,Spring Security 和其他相关技术来构建一个现代化的 Java Web 应用程序。通过参与这个项目的开发,你可以学习到如何使用 JHipster 来快速搭建一个 Java Web 应用程序的基础结构。 3. CoderFoundry的示例项目(https://github.com/coderfoundry/JavaProjects) CoderFoundry 是一家软件开发培训机构,他们在 GitHub 上分享了一些用于教学目的的 Java Web 项目示例。这些示例项目涵盖了各种不同的主题,如登录认证,RESTful API 开发和数据库管理等。通过参与这些示例项目的开发,你可以锻炼自己的 Java Web 开发技能。 4. JBlog(https://github.com/imxieyi/JBlog) JBlog 是一个使用 Java 和 Spring Boot 开发的简单博客应用程序。通过阅读这个项目的源代码,你可以学习到如何使用 Spring Boot 和其他相关技术来构建一个基本的博客应用程序,包括用户认证和授权,博客文章的创建和管理,以及前端页面的开发等。 这些 GitHub 项目都提供了源代码和文档,你可以自由地下载和学习它们,从而提升你的 Java Web 开发技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值