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

创建Java项目

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

apply plugin: '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目录,但它实际上并没有被真正创建。如果我们需要这个目录,那就必须自己来创建。

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

wuchao@wuchao-PC:~/workspace/GradleWorkSpace/javaweb$ gradle war
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=gasp
:compileJava
:processResources
:classes
:war BUILD SUCCESSFUL Total time: 1.038 secs

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

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

运行Web应用

我们可以使用Gretty在开发环境中运行Web应用,它支持Jetty和Tomcat,它也不会被Gradle缺少SLF4J绑定所导致的问题所困扰。我们继续进行配置构建并使用Gretty运行Web应用。

首先,必须配置构建脚本的依赖。可以通过以下步骤完成:

1. 使用Bintray的JCenter Maven仓库配置构建脚本,进行依赖解析。

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'

第三步,按照以下步骤配置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应用。

Gradle入门(6):创建Web应用项目的更多相关文章

  1. DevExpress XtraReports 入门四 创建 Web 报表

    原文:DevExpress XtraReports 入门四 创建 Web 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助更多的人不会像我这 ...

  2. IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)

    Eclipse用多了,IntelliJ中创建Maven聚合项目可能有小伙伴还不太熟悉,我们今天就来看看. IntelliJ中创建普通的Java聚合项目相对来说比较容易,不会涉及到web操作,涉及到we ...

  3. Web API(三):创建Web API项目

    在本篇文章中将讲解如何使用Visual Studio创建一个新的ASP.NET Web API项目. 在Visual Studio中有两种方式用于创建Web API项目: 1.创建带MVC的Web A ...

  4. 38.IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)

    转自:https://blog.csdn.net/u012702547/article/details/77431765 Eclipse用多了,IntelliJ中创建Maven聚合项目可能有小伙伴还不 ...

  5. maven命令创建web骨架项目

    maven命令创建web骨架项目有以下两种方式: mvn archetype:create -DgroupId=org.seckill -DartifactId=seckill -Darchetype ...

  6. IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)(转载)

    创建parent项目 1.打开IDEA,注意这里不要勾选模板,用模板创建过maven项目的小伙伴都知道模板创建项目非常慢,所以这里不要选模板,需要的文件夹我们后面自己来创建就可以了.所以这个页面直接点 ...

  7. Myeclipse 创建 Web Maven项目

    1.创建Web项目 添加Maven支持 2.pom.xml 报如下错误: 解决办法: pom.xml里面添加依赖: <dependency> <groupId>com.thou ...

  8. gradle入门(1-4)多项目构建实战

    一.多项目构建 1.多项目构建概念 尽管我们可以仅使用单个组件来创建可工作的应用程序,但有时候更广泛的做法是将应用程序划分为多个更小的模块. 因为这是一个非常普遍的需求,因此每个成熟的构建工具都必须支 ...

  9. 【DNN 系列 创建WEB模块 项目】

    现在DNN已经更新到8.0.3 然而使用7.0 的项目模块 会报错, 就是填写网站的时候 会再网站的项目当中添加文件夹这样会破坏网站 所以来自己创建自己的模板项目 首选创建空的WEB 项目网站 创建完 ...

随机推荐

  1. C 共享内存封装

    引言 - 背景 2016 年写过一篇关于 linux 共享内存 shm api 扫盲文. C扩展 从共享内存shm到memcache外部内存 比较简单. 没有深入分析(能力有限, 也深入分析不了). ...

  2. 20155305mypwd的实现和测试

    20155305mypwd的实现和测试 pwd命令及其功能 命令格式: pwd 命令功能: 查看"当前工作目录"的完整路径 常用参数: 一般情况下不带任何参数 作业mypwd代码实 ...

  3. 苏州Uber优步司机奖励政策(4月21日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  4. 获取当前页面的所有链接的四种方法对比(python 爬虫)

    ''' 得到当前页面所有连接 ''' import requests import re from bs4 import BeautifulSoup from lxml import etree fr ...

  5. extern "C" 的用意

    extern "C" 修饰符只有在C++代码的时候才用到. C++编译器通常会对变量名和函数名进行改编,这样在链接的时候会出现问题. 假如: 1.用C++编写的Dll,在编译成Dl ...

  6. flask之URL和视图(一)

    1.Flask URL和视图 1.1.第一个flask程序 from flask import Flask #创建一个Flask对象,传递__name__参数进去 app = Flask(__name ...

  7. jenkins maven设置settings.xml

    环境:jenkins.2.89.3 1.安装settings.xml管理插件Config File Provider Plugin  系统管理->管理插件->搜索Config File P ...

  8. 【linux】linux常用命令汇总

    linux主要的目录树的有/. /root. /home. /usr. /bin 等目录 / 根目录 /bin 存放必要的命令 /boot 存放内核以及启动所需的文件 /dev 存放设备文件 /etc ...

  9. Git命令简单总结

    集中式vs分布式 svn集中式:版本库是集中存放在中央服务器的,需要联网才能工作 git 分布式:每个人的电脑上都是一个完整的版本库 和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为 ...

  10. 【PaPaPa】系统架构搭建浅析 - 人人可以搭架构

    声明 [PaPaPa]这个项目是以技术分享与研究为目的而做的,并非商业项目,所以更多的是提供一种思路,请勿直接在项目中使用. 上一篇隐藏开源项目地址实属无奈,为了寻找一起做这件事的同伴不得已刷了一天推 ...