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插件添加了两个新的依赖项管理配置,称为providerCompile和providerRuntime 。 这两个配置与编译和运行时配置具有相同的作用域,但是不同之处在于,属于这些新配置的依赖项未添加到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应用程序。
首先 ,我们必须配置构建脚本的依赖关系。 我们可以按照以下步骤进行操作:
- 配置构建脚本以在解析依赖项时使用Bintray的JCenter Maven存储库 。
- 将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:
- 将Gretty配置为在运行我们的Web应用程序时将Jetty 9用作servlet容器。
- 配置Jetty以侦听端口8080。
- 使用上下文路径“ /”将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插件向我们的构建中添加了两个新的依赖项配置( ProvideCompile和ProvidedRuntime ),并且我们了解了这些依赖项配置如何工作。
- 我们学习了将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应用程序项目
gradle创建web工程 这篇博客文章描述了如何使用Gradle创建一个Web应用程序项目. 更具体地说,我们想创建一个使用Java的Web应用程序项目,将我们的Web应用程序打包到WAR文件中,并 ...
- maven项目 jetty_如何使用Java,Maven,Jetty创建Web应用程序项目
maven项目 jetty 在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在一个名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编 ...
- 如何使用Java,Maven,Jetty创建Web应用程序项目
在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编写简单的Servlet,并生成W ...
- 使用Maven创建Web应用程序项目
在本教程中,我们将演示如何使用 Maven 创建一个 Java Web 项目(Spring MVC). 用到的技术/工具: Maven 3.3.3 Eclipse 4.3 JDK 8 Spring 4 ...
- Flutter入门——创建第一个Flutter项目
Flutter入门--创建第一个Flutter项目 一.创建项目 第一个项目使用Android Studio创建,步骤如下: 先打开Android Studio,会有一个创建新的Flutter应用的选 ...
- 如何使用Quartz Scheduler和日志记录创建Web应用程序
我有时会在Quartz Scheduler论坛中为用户提供帮助. 有时,有人会问他/她如何在Web应用程序中设置Quartz. 实际上,这是一件相当简单的事情. 该库已经带有一个ServletCont ...
- 黄聪:用于 Web 应用程序项目部署的 Web.config 转换语法
Web.config 文件通常包括根据应用程序的运行环境而必须不同的设置. 例如,在部署 Web.config 文件时,您可能必须更改数据库连接字符串或禁用调试. 对于 Web 应用程序项目,ASP. ...
- vs.Net2003无法打开或创建Web应用程序若干解决办法
昨天到今天搞了一整天,把人都要差点搞崩了! ,以后再也不能乱关机了,因为这次的大意,几乎所有的Net安装,调试问题都被我碰到了,还好,我一个个把他记录下来了,同时,在CSDN找了一些相关的解决方法,不 ...
- 一个非常轻巧的基于Groovy的Web应用程序项目模板
一个非常轻巧的基于Groovy的Web应用程序项目模板 您可能听说过该项目Grails是Ruby on Rails之类的Groovy版本的框架,该框架使您可以通过动态脚本轻松地创建Web应用程序. 尽 ...
最新文章
- PM2.5空气质量指数(AQI)是如何计算的
- LeetCode 5832. 构造元素不等于两相邻元素平均值的数组
- 立足于飞秋和即时通讯软件市场
- C语言课后习题(11)
- 《Scikit-Learn与TensorFlow机器学习实用指南》第11章 训练深层神经网络
- C++_类和对象_C++多态_纯虚函数和抽象类---C++语言工作笔记072
- Linux_c++线程函数的使用
- hihocoder216周:贪心或二分
- IMX6DL4.1.15支持EIM总线(上)——实际操作,修改内容。
- 2022年全网首发|大数据专家级技能模型与学习指南(胜天半子篇)
- vue中el-calendar自定义日历控件
- 10个优秀的思维导图软件,各种需求都能满足!!!
- 视频音频剪辑合并软件 免费强大 LosslessCut
- 【C/C++】简单的程序小游戏-推箱子代码
- Php区分自然量跟aso量,ASO优化师该如何判断做优化时下载量与评论的比例关系
- 怎样使用NetFlow分析网络异常流量
- 软件测试工程师市场需求量是多少,带你探索软件测试工程师月薪是多少
- E0 S0 SVL接口配置
- Python-函数入参和全局变量
- [1304]求圆的周长和面积(Java)
热门文章
- 插值查找+代码实现+注意事项
- springboot使用ImportBeanDefinitionRegistrar 动态注册bean
- jvm 启动参数设置
- hadoop2.6.0+eclipse配置
- 自动配置jdk_JDK 15中自动自动发送更好的NullPointerException消息
- 大文件拆分小文件求top_将文件拆分为流
- java登录界面命令_Java命令行界面(第18部分):JCLAP
- 单例模式引发的内存泄漏:_资源泄漏:救援的命令模式
- 对象容器设计模式_容器对象模式。 一种新的测试模式。
- java8 函数式编程_使用Javaslang进行Java 8中的函数式编程