Gradle入门:创建 Spring Boot Web 应用项目

在一台远程服务器上运行Spring Web应用程序的传统做法是,将其打包为war文件并部署到servlet容器中。

虽然在过去这个方法很好很强大,然而要同时管理多个servlet容器总是有些繁琐。

Spring Boot针对该问题提供了一种解决方案,它允许我们将web应用程序打包为一个可执行的jar文件,这个文件可以使用嵌入式的servlet容器。

这篇博文将描述如何创建一个满足以下要求的Spring Boot web应用程序:

  • Spring Boot应用程序必须使用Thymeleaf作为模版引擎。
  • Spring Boot应用程序必须提供一种对其进行监控的方式。
  • Gradle项目必须拥有独立的源文件和资源文件目录,以便进行单元和集成测试。

我们开始吧。

创建Java项目

由于我们需要创建的是一个Java项目,所以必须使用Java插件。通过以下步骤可以完成:

1.应用Gradle的Java插件。
2.设置Java源码的版本为1.8。
3.配置Gradle生成Java1.8的class文件。

build.gradle文件如下:

Java插件会在我们的构建中添加新的约定(如默认的目录结构)、任务和属性集。如果你想了解更多内容,可以阅读以下博文:

Gradle入门系列(2):第一个Java项目

我们继续,下面是如何在Gradle构建中添加集成测试。

在Gradle构建中添加集成测试

我们可以使用Gradle测试集插件(TestSets plugin)在构建中添加集成测试。由于我已经写过一篇描述如何使用该插件的教程了,所以在这篇文章中我就不再赘述其配置了。

在实现了“此文”所提到的需求以后,build.gradle 文件如下:

扩展阅读

我们继续,下面将谈到如何在Gradle项目中添加Spring Boot的支持。

在Gradle项目中添加Spring Boot的支持

我们可以使用Spring Boot Gradle插件在Gradle项目中添加Spring Boot的支持。通过以下步骤使用该插件:

1. 在构建脚本的classpath中添加Spring Boot Gradle插件(版本:1.2.5.RELEASE)。

2. 应用Spring Boot Gradle插件。

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

扩展阅读

我们无须使用Bintray的Jcenter Maven仓库,但是由于Gradle测试集插件依赖于该仓库,因此本文中的演示程序也将其加入。

在应用Spring Boot Gradle插件后,我们可以:

  • 将应用程序打包为可执行的jar文件。
  • 使用bootrun任务运行程序。
  • 省略Spring Boot依赖的版本信息。
  • 将应用程序打包为war文件。

当然,我们也可以对Spring Boot Gradle插件进行配置,并自定义执行和打包应用程序的任务。

扩展阅读

我们继续,下面是如何通过Gradle获取所需的依赖项。

获取所需的依赖项

我们可以通过所谓的starter POM来获取Spring Boot应用的依赖。Spring Boot的参考指南将starter POM描述如下:

starter POM是一族可以被包含到项目中的便捷依赖描述符。你可以一站式的获取所有需要的Spring和相关技术,无需苦苦寻找演示代码,也无需复制粘贴大量的依赖描述符。

换句话说,我们只需选择正确的starter POM,并将其加入到Gradle构建中即可。

我们可以通过以下步骤获取所需的依赖:

  1. 确保所有的依赖都从Maven2的中央仓库获取。
  2. compile配置里添加spring-boot-starter-actuator依赖,我们之所以需要这个依赖,是因为它提供了一种监控应用运行状态的方法。
  3. compile配置里添加spring-boot-starter-thymeleaf依赖,我们之所以需要该依赖,是因为我们需要使用Thymeleaf作为创建Web应用的模版引擎。
  4. testCompile配置里添加spring-boot-starter-test依赖,我们之所以需要该依赖,是因为我们需要在Web应用中编写单元测试和集成测试。

build.gradle的源代码如下:

我们不需要设置Spring Boot依赖的版本,因为Spring Boot Gradle插件能够决定这些依赖的版本。换句话说,我们可以通过设置Spring Boot Gradle插件的版本来选择偏好的Spring Boot的版本。
扩展阅读

我们继续,下面是如何运行Spring Boot应用程序。

运行Spring Boot 应用程序

我们可以使用以下任一方法,运行Spring Boot应用程序:

首先,可以使用Spring Boot Gradle插件中的bootRun任务运行应用程序,而无需创建jar文件。我们应当在开发阶段使用这个方法,因为它可以使我们静态的classpath资源(即:在src/main/resources下的文件)都成为可重载的资源。

换句话说,如果我们使用这个方法,就可以在Spring Boot应用程序运行时对这些文件进行更改,而且可以在不重启应用的情况下观察到变化。

通过在命令提示符中输入以下命令,就可以使用该方法了。

扩展阅读

其次,我们可以将应用程序打包为一个可执行的jar文件,继而执行所创建的文件。如果想要在一台远程服务器上运行Spring Boot应用,应当采用这种方法。

通过在命令提示符中输入以下命令,就可以创建一个可执行的jar文件了。

这条命令会在build/libs目录下创建spring-boot-web-application.jar文件。在将其复制到远程服务器上后,可以通过以下命令运行应用程序。

扩展阅读

我们继续来总结一下从这篇教程中的所学所得。

总结

这篇博文教会了我们以下四点:

  • 我们可以使用Spring Boot Gradle插件在Gradle项目中添加Spring Boot的支持。
  • 我们可以通过设置Spring Boot Gradle插件的版本来选择偏爱的Spring Boot的版本。这意味着我们不再需要设置每个Spring Boot依赖项的版本。
  • 如果我们想要在开发环境运行Spring Boot应用程序,应当使用Spring Boot Gradle插件中的bootRun任务。
  • 如果我们想要在远程服务器上运行Spring Boot应用程序,应当将其打包为可执行的jar文件,并复制到远程服务器上,运行即可。

P.S. 你可以从Github上获取本文的演示程序

1 7 收藏 评论

关于作者:JustinWu

编译成功,零个错误,零个警告。(新浪微博:@微风12345678) 个人主页 · 我的文章 · 15

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部