SpringBoot.14.SpringBoot使用jsp模板打包成jar

x33g5p2x  于2022-04-11 转载在 Spring  
字(5.7k)|赞(0)|评价(0)|浏览(588)

前言

关于SpringBoot使用jsp模板打包成jar的方式运行在文章SpringBoot.08.SpringBoot文件上传与下载中我们简单的提到过一次,这里我们来详细记录一下过程和注意事项

实现步骤

这里我们就以文章SpringBoot.12.SpringBoot中的拦截器中的Module为例进行打包测试

1.pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.5.0</version>
  9. <relativePath/>
  10. </parent>
  11. <groupId>com.christy</groupId>
  12. <artifactId>springboot-08-interceptor</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>springboot-08-interceptor</name>
  15. <description>Demo project for Spring Boot</description>
  16. <!-- 指定打包方式为jar(默认) -->
  17. <packaging>jar</packaging>
  18. <properties>
  19. <java.version>1.8</java.version>
  20. </properties>
  21. <dependencies>
  22. <!-- spring-boot-starter-web -->
  23. <dependency>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-starter-web</artifactId>
  26. </dependency>
  27. <!-- spring-boot-starter-test -->
  28. <dependency>
  29. <groupId>org.springframework.boot</groupId>
  30. <artifactId>spring-boot-starter-test</artifactId>
  31. <scope>test</scope>
  32. </dependency>
  33. <!-- druid -->
  34. <dependency>
  35. <groupId>com.alibaba</groupId>
  36. <artifactId>druid</artifactId>
  37. <version>1.2.6</version>
  38. </dependency>
  39. <!-- mysql-connector-java -->
  40. <dependency>
  41. <groupId>mysql</groupId>
  42. <artifactId>mysql-connector-java</artifactId>
  43. <version>5.1.38</version>
  44. </dependency>
  45. <!-- mybatis-spring-boot-starter
  46. 由于springboot整合mybatis版本中默认依赖mybatis 因此不需要额外引入mybati版本,否则会出现冲突
  47. -->
  48. <dependency>
  49. <groupId>org.mybatis.spring.boot</groupId>
  50. <artifactId>mybatis-spring-boot-starter</artifactId>
  51. <version>2.1.4</version>
  52. </dependency>
  53. <!-- 每次新建的项目如果需要开启热部署都需要引入该依赖 -->
  54. <dependency>
  55. <groupId>org.springframework.boot</groupId>
  56. <artifactId>spring-boot-devtools</artifactId>
  57. <optional>true</optional>
  58. </dependency>
  59. <!-- lombok -->
  60. <dependency>
  61. <groupId>org.projectlombok</groupId>
  62. <artifactId>lombok</artifactId>
  63. </dependency>
  64. <!-- c标签库 -->
  65. <dependency>
  66. <groupId>jstl</groupId>
  67. <artifactId>jstl</artifactId>
  68. <version>1.2</version>
  69. </dependency>
  70. <!-- 让内嵌tomcat具有解析jsp功能 -->
  71. <dependency>
  72. <groupId>org.apache.tomcat.embed</groupId>
  73. <artifactId>tomcat-embed-jasper</artifactId>
  74. </dependency>
  75. <!-- 文件上传相关 -->
  76. <dependency>
  77. <groupId>commons-io</groupId>
  78. <artifactId>commons-io</artifactId>
  79. <version>2.8.0</version>
  80. </dependency>
  81. <dependency>
  82. <groupId>commons-fileupload</groupId>
  83. <artifactId>commons-fileupload</artifactId>
  84. <version>1.4</version>
  85. <exclusions>
  86. <exclusion>
  87. <groupId>commons-io</groupId>
  88. <artifactId>commons-io</artifactId>
  89. </exclusion>
  90. </exclusions>
  91. </dependency>
  92. </dependencies>
  93. <build>
  94. <plugins>
  95. <!-- 一定要注意mvn的插件一定是1.4.2.RELEASE,否则jsp访问不到 -->
  96. <plugin>
  97. <groupId>org.springframework.boot</groupId>
  98. <artifactId>spring-boot-maven-plugin</artifactId>
  99. <version>1.4.2.RELEASE</version>
  100. </plugin>
  101. </plugins>
  102. <resources>
  103. <!-- 打包时将jsp文件拷贝到META-INF目录下-->
  104. <resource>
  105. <!-- 指定resources插件处理哪个目录下的资源文件 -->
  106. <directory>src/main/webapp</directory>
  107. <!-- 注意必须要放在此目录下才能被访问到 -->
  108. <targetPath>META-INF/resources</targetPath>
  109. <includes>
  110. <include>**/**</include>
  111. </includes>
  112. </resource>
  113. <resource>
  114. <directory>src/main/resources</directory>
  115. <includes>
  116. <include>**/**</include>
  117. </includes>
  118. <filtering>false</filtering>
  119. </resource>
  120. </resources>
  121. </build>
  122. </project>
  1. <build>
  2. <plugins>
  3. <!-- 一定要注意mvn的插件一定是1.4.2.RELEASE,否则jsp访问不到,如下图所示 -->
  4. <plugin>
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-maven-plugin</artifactId>
  7. <version>1.4.2.RELEASE</version>
  8. </plugin>
  9. </plugins>
  10. <resources>
  11. <!-- 打包时将jsp文件拷贝到META-INF目录下-->
  12. <resource>
  13. <!-- 指定resources插件处理哪个目录下的资源文件 -->
  14. <directory>src/main/webapp</directory>
  15. <!-- 注意必须要放在此目录下才能被访问到 -->
  16. <targetPath>META-INF/resources</targetPath>
  17. <includes>
  18. <include>**/**</include>
  19. </includes>
  20. </resource>
  21. <resource>
  22. <directory>src/main/resources</directory>
  23. <includes>
  24. <include>**/**</include>
  25. </includes>
  26. <filtering>false</filtering>
  27. </resource>
  28. </resources>
  29. </build>

2.打包

我们点击IDEA的右侧边栏的Maven标签,依次点击springboot-08-interceptor下面的Lifecycle下的clearpackage命令。如下图所示:

package命令执行完毕后,我们能够在项目下面的target包下面看到我们生成的jar包。如下图所示:

3.上传至服务器

打开我们Linux服务器Christy(BaseOS),ip地址为192.168.8.100。如下图所示:

执行cd命令进入到/usr/apps目录下,执行rz命令,选择刚才生成的jar进行上传。如下图所示:

4.运行

执行命令java -jar springboot-08-interceptor-0.0.1-SNAPSHOT.jar nohup &可以后台运行该程序,如下图所示:

此时我们执行命令Ctrl+C,该程序会切换到后台运行,我们执行jps命令会发现该进程依然存在,如下图所示:

5.测试

我们浏览器访问http://192.168.8.100:8808/interceptor.jsp页面可以正常访问。如下图所示:

当我们浏览器访问http://192.168.8.100:8808/interceptor/sayHello时控制台会输出以下内容:

当有请求访问该程序时程序自动转换到前台运行,非常方便。

相关文章