Spring MVC Gradle

时间:2020-02-23 14:35:55  来源:igfitidea点击:

在本文中,我们将使用Eclipse Gradle插件开发和测试简单的Spring MVC Gradle应用程序。

Spring MVC Gradle

我们将从Spring MVC教程将Spring MVC maven示例转换为spring mvc gradle示例。

还建议您阅读我以前在Gradle教程中的Gradle帖子。

Spring MVC将Maven转换为Gradle

以下是将Maven转换为Gradle应用程序要遵循的步骤。

  • 通过以下链接开发基于Maven的Spring MVC应用程序:Spring MVC教程或者从下面的链接下载代码。
    下载Spring MVC项目

  • 将此spring mvc maven项目导入Eclipse IDE。

  • 删除pom.xml文件

  • 创建空的" build.gradle"文件。

  • 现在开始将每个组件从pom.xml转换为build.gradle文件。

  • 基本的build.gradle模板文件

build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.7

repositories {
  mavenCentral()
}

dependencies {
//Dependencies goes here
}

我们将以此为基础构建文件,并用所需的元素逐一更新它。

  • 由于它是Spring MVC Web应用程序,因此我们需要创建WAR文件。
    因此,请应用war插件并定义war属性,如下所示。

另请提供war文件名及其版本。

apply plugin: "war"
war {
  baseName = 'SpringMVCExample'
  version = '1.0.0-BUILD-SNAPSHOT'
}
  • 添加Spring依赖关系,如下所示
dependencies {
  compile("org.springframework:spring-context:4.0.0.RELEASE")
  compile("org.springframework:spring-webmvc:4.0.0.RELEASE")
  compile("org.aspectj:aspectjrt:1.7.4")
}
  • 添加其余的应用程序依赖项,如下所示
dependencies {
  compile("javax.inject:javax.inject:1")
  compile("javax.servlet:servlet-api:2.5")
  compile("javax.servlet:jstl:2.5")
  compile("javax.servlet.jsp:jsp-api:1.2")	
  compile("org.slf4j:slf4j-api:1.7.5")
  compile("org.slf4j:jcl-over-slf4j:1.7.5")
  compile("org.slf4j:slf4j-log4j12:1.7.5")
  compile("log4j:log4j:1.2.15")
}
  • 添加我们的应用程序单元测试依赖项,如下所示。
dependencies {
  testCompile("junit:junit:4.7") 
}

我们使用" compile()"元素添加依赖项。

compile("org.springframework:spring-context:4.0.0.RELEASE")

我们使用" providedRuntime()"元素在运行时添加依赖项。

providedRuntime("javax.servlet:jstl:2.5")

我们使用" testCompile()"元素来添加仅用于运行单元测试的依赖项。

testCompile("junit:junit:4.7")
  • 我们的应用程序完整的build.gradle依赖关系如下所示。

build.gradle

dependencies {
  compile("org.springframework:spring-context:4.0.0.RELEASE")
  compile("org.springframework:spring-webmvc:4.0.0.RELEASE")
  compile("org.aspectj:aspectjrt:1.7.4")

  compile("javax.inject:javax.inject:1")
  compile("javax.servlet:servlet-api:2.5")
  compile("javax.servlet:jstl:2.5")
  compile("javax.servlet.jsp:jsp-api:1.2")	
  compile("org.slf4j:slf4j-api:1.7.5")
  compile("org.slf4j:jcl-over-slf4j:1.7.5")
  compile("org.slf4j:slf4j-log4j12:1.7.5")
  compile("log4j:log4j:1.2.15")

  testCompile("junit:junit:4.7") 
}
  • 现在,最终的项目结构如下图所示。

  • 在项目根目录中打开命令提示符以执行gradle命令。

  • 现在,通过执行以下gradle命令来构建war文件。

gradle clean
gradle build

或者使用以下语法一次执行两个命令。
这类似于执行Maven命令。

gradle clean build

我总是建议每个人在构建我们的应用程序之前使用" clean"命令。
它会清理我们的旧版本内容,编译并使用最新文件创建新的WAR/JAR。

  • 观察我们新创建的war文件,位于${PROJECT_ROOT_DIR}/build/libs /文件夹,如下所示。

War file is created with given Name and Version in build.gradle file. i.e. SpringMVCExample-1.0.0-BUILD-SNAPSHOT.war

测试Spring MVC Gradle应用程序

我们已经成功开发了Spring MVC gradle应用程序。
现在是时候部署和测试该应用程序了。
您可以将此应用程序部署到任何Web /应用程序服务器中。
我将使用Apache Tomcat 8测试该应用程序。

${TOMCAT8_HOME} = D:\apache-tomcat-8.0.24
${TOMCAT8_BIN} = D:\apache-tomcat-8.0.24\bin
  • 将我们的战争文件" SpringMVCExample-1.0.0-BUILD-SNAPSHOT.war"复制到${TOMCAT8_HOME}/webapps /文件夹中
  • 在${TOMCAT8_BIN}中打开CMD Prompt,然后启动Tomcat服务器。
D:\apache-tomcat-8.0.24\bin>startup.bat
  • 测试我们的应用

使用以下URL访问主页:https://localhost:8888/SpringMVCExample-1.0.0-BUILD-SNAPSHOT /

其中我们的应用程序RootContext是" SpringMVCExample-1.0.0-BUILD-SNAPSHOT"。
如果需要,我们可以为WAR文件指定一个适当的名称,例如" SpringMVCExample"。

使用以下网址访问登录页面:localhost:8888/SpringMVCExample-1.0.0-BUILD-SNAPSHOT/login /

提供用户名,单击"登录"按钮,然后观察下一页,如下所示:

Gradle和Maven项目之间的观察

如果我们同时观察基于SpringMVCExample Maven和Gradle的项目,则可以观察到以下内容。

  • 我们将获得相同的战争文件和输出。

  • Maven的build.xml是XML文件,而Gradle的build.gradle文件是纯文本文件。

  • Maven的build.xml太大,并且包含许多XML配置。
    Gradle的build.gradle包含很少的配置。

  • Gradle的build.gradle文件包含较少的配置,而且重量也很轻。

除了这些好处,我们还可以从Gradle文件中获得更多好处。
请在我有关Gradle的第一篇文章中参考它们。

由于这些原因,当今大多数新项目都从Gradle构建工具开始,而现有项目正从Maven转换为Gradle。