博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gradle入门(6):创建Web应用项目
阅读量:6072 次
发布时间:2019-06-20

本文共 2681 字,大约阅读时间需要 8 分钟。

本文由 - 翻译, 校稿。未经许可,禁止转载! 英文出处:。欢迎加入。

如果你并不熟悉Gradle,在继续阅读本文之前,你应当先阅读以下文章。

  • 《》帮助你学会安装Gradle,描述了Gradle构建的基本概念,还描述了如何使用Gradle插件在构建中添加功能。
  • 《》描述了如何通过Gradle创建Java项目,并将其打包为可执行jar文件。
  • 《》描述了如何管理Gradle项目的依赖。

创建Web应用项目

如果要用 Java 和 Gradle 创建一个 Web 应用项目,我们首先需要创建一个 Java 项目,下面来看看该如何去做。

创建Java项目

我们可以使用Java插件创建一个Java项目,通过添加以下代码行到build.gradle文件中即可。

apply plugin: 'java'复制代码

扩展阅读: Java插件中加入了一些新的约定(例如:默认的目录格式)、任务和构建属性。如果你想获悉这些内容,可以阅读下面这篇文章。《》

我们继续探索如何打包Web应用。

打包Web应用

在我们使用War插件打包Web应用前,需要将其加入到构建中。在应用了War插件后,build.gradle文件如下:

apply plugin: 'java'apply plugin: 'war'复制代码

War插件在项目的目录布局下添加了一个新的目录,加入了两个新的依赖管理配置项,以及在项目中添加了一个新的任务。这些变化的详细描述如下:

  • War插件在项目的目录布局下添加了src/main/webapp目录,这个目录包含Web应用的源文件(CSS文件、Javascript文件、JSP文件等)。
  • War插件加入了两个新的依赖管理配置项providedCompile 和 providedRuntime.,这两个配置项与compile 和 runtime 配置项的作用域相同,但是区别是这两个配置项所属的依赖不会被添加到WAR文件中。
  • War插件也会在应用项目中添加war任务,这个任务会将WAR文件置于build/libs目录中。

即便War插件在项目的目录布局下添加了src/main/webapp目录,但它实际上并没有被真正创建。如果我们需要这个目录,那就必须自己来创建。

扩展阅读: 如果你不知道compileruntime配置项是什么,你应该阅读以下文章:《》

现在,我们可以在命令提示符下,通过gradle war命令打包Web应用。此时此刻,我们可以看到如下输出:

> gradle war:compileJava:processResources:classes:war BUILD SUCCESSFUL Total time: 4.937 secs复制代码

如果一切顺利,我们应该可以在build/libs目录下找到web-application.war文件。

扩展阅读:如果你需要关于War插件或war任务的更多信息,或者是,你想要覆盖War插件或war任务的默认配置,你可以多多关注以下网页:

运行Web应用

我们可以使用Gretty在开发环境中运行Web应用,它支持Jetty和Tomcat,它也不会被 所困扰。我们继续进行配置构建并使用Gretty运行Web应用。首先,必须配置构建脚本的依赖。可以通过以下步骤完成:

  1. 使用配置构建脚本,进行依赖解析。
  2. 将Gretty插件的依赖加入到构建脚本的classpath中。

**扩展阅读:**如果你想了解更多关于在已经打包为jar的文件上使用的二进制插件的技巧,你可以阅读Gradle用户手册的以下章节:

第二步,应用Gretty插件。做完这一步后,build.gradle文件如下:

buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'org.akhikhl.gretty:gretty'    }} apply plugin: 'java'apply plugin: 'war'apply plugin: 'org.akhikhl.gretty'复制代码

build.gradle的源代码如下:

buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'org.akhikhl.gretty:gretty'    }} apply plugin: 'java'apply plugin: 'war'复制代码

第三步,按照以下步骤配置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 = 8080    contextPath = '/'    servletContainer = 'jetty9'}复制代码

扩展阅读:如果你想了解关于Gretty的更多内容,可以仔细看一下以下文档:

现在,我们可以通过在命令提示符下运行以下命令,开启或终止我们的Web应用:

  • gradle appStart命令能运行Web应用。
  • gradle appStop命令能终止Web应用。

总结

这篇教程教会了我们四项内容:

  • 我们学会了,如果要使用默认配置,就必须把Web应用的源文件置于 src/main/webapp 目录下。
  • 我们学会了,War插件会添加两个新的依赖项(providedCompile 和 providedRuntime)到构建中,还学会了这些依赖项是如何工作的。
  • 我们学会了,将Web应用打包为WAR文件。
  • 我们学会了,在开发环境中运行Web应用。

P.S. 你可以从 Github 上拿到这篇教程的。

关于作者:

转载自:

文章:

你可能感兴趣的文章
灵活的运用Model类
查看>>
hadoop 之分布式安装
查看>>
使用ansible工具部署ceph
查看>>
linux系列博文---->深入理解linux启动运行原理(一)
查看>>
Android反编译(一) 之反编译JAVA源码
查看>>
结合当前公司发展情况,技术团队情况,设计一个适合的技术团队绩效考核机制...
查看>>
python-45: opener 的使用
查看>>
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
Ubuntu12.04 编译android源代码及生成模拟器经历分享
查看>>
KVM网络桥接设置方法
查看>>
Puppet学习手册:Puppet Yum安装
查看>>
我的友情链接
查看>>
ansible学习记录
查看>>
网思科技校园网计费解决方案
查看>>
我的友情链接
查看>>
携程 Apollo分布式部署
查看>>