这篇博客文章描述了如何使用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应用程序项目相关推荐

  1. gradle创建web工程_Gradle入门:创建Web应用程序项目

    gradle创建web工程 这篇博客文章描述了如何使用Gradle创建一个Web应用程序项目. 更具体地说,我们想创建一个使用Java的Web应用程序项目,将我们的Web应用程序打包到WAR文件中,并 ...

  2. maven项目 jetty_如何使用Java,Maven,Jetty创建Web应用程序项目

    maven项目 jetty 在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在一个名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编 ...

  3. 如何使用Java,Maven,Jetty创建Web应用程序项目

    在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编写简单的Servlet,并生成W ...

  4. 使用Maven创建Web应用程序项目

    在本教程中,我们将演示如何使用 Maven 创建一个 Java Web 项目(Spring MVC). 用到的技术/工具: Maven 3.3.3 Eclipse 4.3 JDK 8 Spring 4 ...

  5. Flutter入门——创建第一个Flutter项目

    Flutter入门--创建第一个Flutter项目 一.创建项目 第一个项目使用Android Studio创建,步骤如下: 先打开Android Studio,会有一个创建新的Flutter应用的选 ...

  6. 如何使用Quartz Scheduler和日志记录创建Web应用程序

    我有时会在Quartz Scheduler论坛中为用户提供帮助. 有时,有人会问他/她如何在Web应用程序中设置Quartz. 实际上,这是一件相当简单的事情. 该库已经带有一个ServletCont ...

  7. 黄聪:用于 Web 应用程序项目部署的 Web.config 转换语法

    Web.config 文件通常包括根据应用程序的运行环境而必须不同的设置. 例如,在部署 Web.config 文件时,您可能必须更改数据库连接字符串或禁用调试. 对于 Web 应用程序项目,ASP. ...

  8. vs.Net2003无法打开或创建Web应用程序若干解决办法

    昨天到今天搞了一整天,把人都要差点搞崩了! ,以后再也不能乱关机了,因为这次的大意,几乎所有的Net安装,调试问题都被我碰到了,还好,我一个个把他记录下来了,同时,在CSDN找了一些相关的解决方法,不 ...

  9. 一个非常轻巧的基于Groovy的Web应用程序项目模板

    一个非常轻巧的基于Groovy的Web应用程序项目模板 您可能听说过该项目Grails是Ruby on Rails之类的Groovy版本的框架,该框架使您可以通过动态脚本轻松地创建Web应用程序. 尽 ...

最新文章

  1. PM2.5空气质量指数(AQI)是如何计算的
  2. LeetCode 5832. 构造元素不等于两相邻元素平均值的数组
  3. 立足于飞秋和即时通讯软件市场
  4. C语言课后习题(11)
  5. 《Scikit-Learn与TensorFlow机器学习实用指南》第11章 训练深层神经网络
  6. C++_类和对象_C++多态_纯虚函数和抽象类---C++语言工作笔记072
  7. Linux_c++线程函数的使用
  8. hihocoder216周:贪心或二分
  9. IMX6DL4.1.15支持EIM总线(上)——实际操作,修改内容。
  10. 2022年全网首发|大数据专家级技能模型与学习指南(胜天半子篇)
  11. vue中el-calendar自定义日历控件
  12. 10个优秀的思维导图软件,各种需求都能满足!!!
  13. 视频音频剪辑合并软件 免费强大 LosslessCut
  14. 【C/C++】简单的程序小游戏-推箱子代码
  15. Php区分自然量跟aso量,ASO优化师该如何判断做优化时下载量与评论的比例关系
  16. 怎样使用NetFlow分析网络异常流量
  17. 软件测试工程师市场需求量是多少,带你探索软件测试工程师月薪是多少
  18. E0 S0 SVL接口配置
  19. Python-函数入参和全局变量
  20. [1304]求圆的周长和面积(Java)

热门文章

  1. 插值查找+代码实现+注意事项
  2. springboot使用ImportBeanDefinitionRegistrar 动态注册bean
  3. jvm 启动参数设置
  4. hadoop2.6.0+eclipse配置
  5. 自动配置jdk_JDK 15中自动自动发送更好的NullPointerException消息
  6. 大文件拆分小文件求top_将文件拆分为流
  7. java登录界面命令_Java命令行界面(第18部分):JCLAP
  8. 单例模式引发的内存泄漏:_资源泄漏:救援的命令模式
  9. 对象容器设计模式_容器对象模式。 一种新的测试模式。
  10. java8 函数式编程_使用Javaslang进行Java 8中的函数式编程