gradle创建web工程

这篇博客文章描述了如何使用Gradle创建一个Web应用程序项目。

更具体地说,我们想创建一个使用Java的Web应用程序项目,将我们的Web应用程序打包到WAR文件中,并在开发环境中运行我们的Web应用程序。

让我们找出如何满足这些要求。

补充阅读:

如果您不熟悉Gradle, 则应先阅读以下博客文章,然后再继续阅读此博客文章:

  • Gradle入门:简介可帮助您安装Gradle,描述Gradle构建的基本概念,并描述如何使用Gradle插件向构建中添加功能。
  • Gradle入门:我们的第一个Java项目描述了如何使用Gradle创建Java项目并将应用程序打包到可执行jar文件中。
  • Gradle入门:依赖性管理介绍了如何管理Gradle项目的依赖性。

创建一个Web应用程序项目

如果我们要创建一个使用Java和Gradle的Web应用程序项目,那么我们要做的第一件事就是创建一个Java项目。 让我们看看我们如何做到这一点。

创建一个Java项目

我们可以通过应用Java插件来创建Java项目。 我们可以通过在build.gradle文件中添加以下行来实现:

apply plugin: 'java'

Java插件将新的约定(例如,默认目录布局),任务和属性添加到我们的构建中。 如果您想了解更多有关此的信息,则应阅读以下博客文章:

  • Gradle入门:我们的第一个Java项目

让我们继续前进,了解如何打包我们的Web应用程序。

打包我们的Web应用程序

在使用War插件打包Web应用程序之前 ,我们必须将其添加到我们的构建中。 应用War插件后, build.gradle文件如下所示:

apply plugin: 'java'
apply plugin: 'war'

War插件将新目录添加到项目的目录布局中,添加了两个新的依赖项管理配置,并向我们的项目添加了新任务。 这些更改描述如下:

  • War插件将src / main / webapp目录添加到项目的目录布局中。 此目录包含Web应用程序的源(CSS文件,Javascript文件,JSP文件等)。
  • War插件添加了两个新的依赖项管理配置,称为providerCompileproviderRuntime 。 这两个配置与编译运行时配置具有相同的作用域,但是不同之处在于,属于这些新配置的依赖项未添加到WAR存档中。
  • War插件还将战争任务添加到我们的Web应用程序项目中。 此任务将WAR归档文件汇编到build / libs目录。

补充阅读:

如果您不知道什么是编译运行时配置,则应阅读以下博客文章:

  • Gradle入门:依赖管理

现在,我们可以通过在命令提示符下运行命令gradle war来打包Web应用程序。 当我们这样做时,我们应该看到以下输出:

> gradle war
:compileJava
:processResources
:classes
:warBUILD SUCCESSFULTotal time: 4.937 secs

如果一切按预期进行,我们应该从build / libs目录中找到web-application.war文件。

注意:

如果您需要有关War插件或
war任务,或者您想覆盖War插件或war任务的默认配置,则应仔细查看以下网页:

  • Gradle用户指南:第26章。War插件
  • Gradle DSL参考:战争任务

让我们找出如何在开发环境中运行Web应用程序。

运行我们的Web应用程序

我们可以使用Gretty在开发环境中运行Web应用程序。 它同时支持Jetty和Tomcat,并且不会受到Gradle泄漏SLF4J绑定引起的问题的困扰 。 让我们继续并配置我们的构建,以使用Gretty运行我们的Web应用程序。

首先 ,我们必须配置构建脚本的依赖关系。 我们可以按照以下步骤进行操作:

  1. 将构建脚本配置为在解析依赖项时使用Bintray的JCenter Maven存储库 。
  2. 将Gretty插件依赖项添加到构建脚本的类路径中。

build.gradle文件的源代码如下所示:

buildscript {repositories {jcenter()}dependencies {classpath 'org.akhikhl.gretty:gretty:+'}
}apply plugin: 'java'
apply plugin: 'war'

如果您想了解有关使用已发布为jar文件的二进制插件的更多信息,则应阅读《 Gradle用户指南》的以下部分:

  • Gradle用户指南:21.4通过buildscript块应用插件
  • Gradle用户指南:60.5构建脚本的外部依赖关系

其次 ,我们必须应用Gretty插件。 完成此操作后, build.gradle文件如下所示:

buildscript {repositories {jcenter()}dependencies {classpath 'org.akhikhl.gretty:gretty:+'}
}apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'

第三 ,我们需要按照以下步骤配置Gretty:

  1. 将Gretty配置为在运行我们的Web应用程序时将Jetty 9用作servlet容器。
  2. 配置Jetty侦听端口8080。
  3. 使用上下文路径“ /”将Jetty配置为运行我们的Web应用程序。

build.gradle文件的源代码如下所示:

buildscript {repositories {jcenter()}dependencies {classpath 'org.akhikhl.gretty:gretty:+'}
}apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'gretty {port = 8080contextPath = '/'servletContainer = 'jetty9'
}

如果您想了解有关Gretty的更多信息,则应仔细阅读其文档:

  • Gretty文档:入门
  • Gretty文档:Gretty配置
  • 灰色文档

现在,我们可以通过在命令提示符处运行以下命令来启动和停止Web应用程序:

  • 命令gradle appStart将运行我们的Web应用程序。
  • 命令gradle appStop将停止我们的Web应用程序。

让我们继续并总结从这篇博客文章中学到的知识。

摘要

这篇博客文章教会了我们四件事:

  • 我们了解到,如果使用默认配置,则必须将Web应用程序的源放置到src / main / webapp目录中。
  • 我们了解到War插件向我们的构建中添加了两个新的依赖项配置( provideCompileProvidedRuntime ),并且我们学习了这些依赖项配置如何工作。
  • 我们学习了将Web应用程序打包到WAR文件中。
  • 我们学会了在开发环境中运行Web应用程序。

PS:您可以从Github获得此博客文章的示例应用程序。

如果您想学习如何使用Gradle,则应该看一下我的Gradle教程 。

翻译自: https://www.javacodegeeks.com/2015/03/getting-started-with-gradle-creating-a-web-application-project.html

gradle创建web工程

gradle创建web工程_Gradle入门:创建Web应用程序项目相关推荐

  1. 使用Eclipse创建Web工程后未生成web.xml文件

    使用Eclipse创建Web工程后未生成web.xml文件 鼠标右击项目,按照如下操作生成web.xml项目:

  2. 使用IDEA创建一个Maven Web工程:无法创建Java Class文件

    今天用IDEA新建了一个maven web工程,项目目录是这样的: 在新创建一个Java class 文件时,却没有Java class功能,无法创建,如图: 解决方案: 选择 File-->P ...

  3. gradle的二进制版本_Gradle入门:创建二进制分发

    gradle的二进制版本 创建有用的应用程序后,很可能我们想与其他人共享它. 一种方法是创建一个可以从我们的网站下载的二进制发行版. 这篇博客文章描述了如何满足以下要求的二进制发行版: 我们的二进制分 ...

  4. Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)

    在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...

  5. #java #web jsp开发入门(web应用概述、tomcat简介、编写步骤)

    #java #web jsp开发入门与编写步骤(web应用概述.tomcat简介.编写步骤) 目录 #java #web jsp开发入门与编写步骤(web应用概述.tomcat简介.编写步骤) 1.w ...

  6. eclipse创建android工程,在eclipse创建android 工程

    1.在工具栏选择"New".在弹出对话框里,开打android文件夹,选择"android application Project",选择"Next& ...

  7. 最新WEB前端从入门到资深专家全套项目实战(完整)

    [课程内容] 初级教程 新手学HTML+CSS PS技法与切片技术 JavaScript快速上手 中级教程 CSS高级及兼容Hack技术 实战Jquery Ajax技术 JavaScriptJQuer ...

  8. pycharm创建python工程_使用Pycharm(Python工具)新建项目及创建Python文件的教程

    创建项目 首先打开Pycharm 勾选I confirm that I have read and accept the terms of this User Agreement 接下来选择Don't ...

  9. 手把手教你使用SSM框架实现一个学生管理系统第二章之创建一个web工程及相关配置文件的介绍

    SSM框架的基本介绍 文字概述: SSM:spring+springMVC+mybaits Spring:是一个容器,就是一个bean(实体对象)大集合. SpringMVC:控制器(业务逻辑层)(视 ...

最新文章

  1. 『网站升级』PHPWind8.0至8.3升级过程及问题种种回顾录
  2. vs2013编译win-32位下的libevent-2.0.21-stable,debug版本
  3. 【问题记录】RIDE-1.7.3.1控制台及日志中文乱码处理
  4. 无人驾驶汽车系统入门系列
  5. 机械硬盘 运行 linux 很慢,如果读写硬盘操作有问题,假死机、很慢等,就检查一下硬盘坏道...
  6. Varnish由于cookie过大返回503
  7. 探索数据可视化,业务数据是核心
  8. 国外大神一张图学会python-关于可以访问国外网站的浏览器的阿里云论坛用户知识和技术交流...
  9. Javascript:Ajax案例实操
  10. SSM项目大作业——网上订餐系统
  11. C语言_链式栈结构+二进制计算器
  12. 磁盘碎片整理软件评测
  13. dp-最长公共子序列
  14. java中+=是什么意思
  15. elasticsearch(ES)的安装部署及其插件安装
  16. ameya360代理品牌之太阳诱电(TAIYO YUDEN)莅临培训指导
  17. win 7 桌面快捷键分类
  18. 数字电路组合逻辑时序逻辑竞争-冒险总结
  19. 前端UI交互 - 中后台系统 - 1+4色彩模式
  20. 8.17.8. Defining New Range Types

热门文章

  1. Ybt#452-序列合并【期望dp】
  2. jzoj3895-数字对【RMQ,GCD,二分答案,单调队列】
  3. jzoj3512-游戏节目【树状数组,双向dfs】
  4. 【图论】【最短路】【Dijkstra】最小花费(ssl 2206/luogu 1576)
  5. MST(最小生成树)上的确定性和存在性问题
  6. P2468 [SDOI2010]粟粟的书架 动态规划,主席树,二分答案
  7. Spark入门(十七)之单表关联
  8. Java的并发编程中的多线程问题到底是怎么回事儿?
  9. 微服务为什么选Spring Cloud
  10. MyBatis 思维导图,让 MyBatis 不再难懂(一)