为什么要使用gradle?
- 按约定声明构建和建设;
- 强大的支持多工程的构建;
- 强大的依赖管理(基于Apache Ivy),提供最大的便利去构建工程;
- 全力支持已有的 Maven 或者Ivy仓库基础建设;
- 支持传递性依赖管理,在不需要远程仓库和pom.xml和ivy配置文件的前提下;
- 基于groovy脚本构建,其build脚本使用groovy语言编写;
- 具有广泛的领域模型(DSL)支持构建;
- 深度 API;
- 易迁移;
- 自由和开放源码,Gradle是一个开源项目,基于 ASL 许可。 https://github.com/gradle/gradle
MyEclipse 安装 gradle插件
打开myeclipse(此处使用myeclipse2015) > help > install from catalog…
搜索框中输入gradle,选择all markets
- 找到Gradle IDE Pack 3.8.x+1.0.x,也可以选择Buildship Gradle Integration 2.0 插件,功能都差不多。Gradle IDE Pack 中包含了Minimalist Gradle Editor,在编辑gradle文件时会有语法高亮效果,插件安装完成后需要在General > Editor > File Assaociations 中设置.gradle 文件的默认编辑器。
创建 gradle 项目
File > new > other >Gradle(STS) Project
Sample project 选择 Java Quickstart,会自动生成src/main/java,src/main/resources,src/test/java,src/testresources 文件夹。
项目结构如下:
build.gradle:
apply plugin:引入gradle 插件
sourceCompatibility:编译的jdk版本
jar:编译jar包用的
repositories:指定中央仓库,支持jcenter(),mavenCentral(),也可以自己指定maven仓库地址
dependencies:依赖引用
test:测试相关配置
uploadArchives:上传jar包
添加 web 配置
由于当前项目还只是一个普通的java项目,还不能发布到tomcat、jetty等容器运行,所以需要添加web相关配置。
选中项目,点击导航栏MyEclipse > Project Facets > Install Dynamic Web Module Facet。
此时多了个球形标志,说明已转换为web项目
添加jetty插件
apply plugin: 'jetty'
注意:在gradle 3.0 版本以上,jetty 插件已更换为gretty插件,如果还使用 apply plugin: ‘jetty’,会报找不到插件的错误。
添加完成后,需要刷新配置,选中项目,右键 > Gradle (STS) > Refresh All,或者使用快捷键 Ctrl F5
编译完成后,在Gradle Tasks 中会多出几个task,显示Gradle Tasks的方法: window > show view > other > Gradle Tasks
配置jetty运行参数
webAppDirName = 'WebRoot' // 设置 WebApp 根目录
jettyRun{
contextPath = "gradle01"
httpPort = 8081 // 运行端口
}
双击 Gradle Tasks 中的jettyRun,待启动完毕,在浏览器中输入 :http://127.0.0.1:8081/gradle01 ,看看运行结果,说明通过jetty插件,已经成功运行了java web项目。
使用本地tomcat容器运行 java web 项目
由于在开发中用惯了本地tomcat来部署项目,可能会更希望把项目运行在本地tomcat中。
先试试看能否在本地tomcat容器中部署 。
打开Servers,选择 Tomcat 7.0,右键Add Deployments ,在部署列表中,根本找不到我们要发布的项目 gradle01。
仔细观察,发现另外一个web01 项目却可以,对比一下差别,可以看到web01上多了一个 球形图标即web项目标志,而gradle01却没有,但是开始的时候明明已经添加过了,而且图标也出现过了,为毛现在没有了?
打开两个项目的.project 文件
web01 > .peoject
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
gradle01 > .peoject
<natures>
<nature>org.springsource.ide.eclipse.gradle.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
此处少了好几个 nature。
解决办法:
添加gradle eclipse-wtp插件,该插件会自动添加 natures 引用
apply plugin: 'eclipse-wtp'
再次Ctrl F5刷新项目,待编译完成后,发现web标志又回来了
部署运行,访问一切正常,跟普通java web项目没什么两样。