使用Eclipse对SpringBoot项目如何进行打包部署
1,打包概要介绍:
自己做了个小demo,突然想练一下如何打包发布,期间出现了两个错误,第一个是加载不到主类,第二个是加载不到jsp文件,一会会把这两个问题一一陈述,以及解决方法。
1.1,先检查pom文件
因为springboot的项目打包的话他是根据pom.xml文件进行打包的,注意:(仔细观看我写的注释,加载不到jsp文件那你还要回头再看)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 <groupId>com.example.demo</groupId> 7 <artifactId>stores-erp</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 <!-- 这边要改成我们jar 因为我们要大jar包 假如是war包的话就写成war --> 10 <packaging>jar</packaging> 11 <name>stores-erp</name> 12 <description>stores-erp</description> 13 14 <parent> 15 <groupId>org.springframework.boot</groupId> 16 <artifactId>spring-boot-starter-parent</artifactId> 17 <version>1.5.18.RELEASE</version> 18 <relativePath /> <!-- lookup parent from repository --> 19 </parent> 20 21 <properties> 22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 23 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 24 <java.version>1.8</java.version> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>cglib</groupId> 30 <artifactId>cglib</artifactId> 31 <version>3.2.5</version> 32 </dependency> 33 <dependency> 34 <groupId>com.github.pagehelper</groupId> 35 <artifactId>pagehelper-spring-boot-starter</artifactId> 36 <version>1.2.5</version> 37 </dependency> 38 <dependency> 39 <groupId>jstl</groupId> 40 <artifactId>jstl</artifactId> 41 <version>1.2</version> 42 </dependency> 43 <dependency> 44 <groupId>org.springframework.boot</groupId> 45 <artifactId>spring-boot-starter-jdbc</artifactId> 46 </dependency> 47 <dependency> 48 <groupId>org.springframework.boot</groupId> 49 <artifactId>spring-boot-starter-web</artifactId> 50 </dependency> 51 <dependency> 52 <groupId>org.apache.tomcat.embed</groupId> 53 <artifactId>tomcat-embed-jasper</artifactId> 54 </dependency> 55 <dependency> 56 <groupId>org.mybatis.spring.boot</groupId> 57 <artifactId>mybatis-spring-boot-starter</artifactId> 58 <version>1.3.2</version> 59 </dependency> 60 61 <dependency> 62 <groupId>org.springframework.boot</groupId> 63 <artifactId>spring-boot-devtools</artifactId> 64 <scope>runtime</scope> 65 </dependency> 66 <dependency> 67 <groupId>mysql</groupId> 68 <artifactId>mysql-connector-java</artifactId> 69 <scope>runtime</scope> 70 </dependency> 71 <dependency> 72 <groupId>org.springframework.boot</groupId> 73 <artifactId>spring-boot-starter-test</artifactId> 74 <scope>test</scope> 75 </dependency> 76 <!-- springboot工具 修改代码后不需重启即生效 --> 77 <dependency> 78 <groupId>org.springframework</groupId> 79 <artifactId>springloaded</artifactId> 80 </dependency> 81 <!-- 文件上传 --> 82 <dependency> 83 <groupId>commons-fileupload</groupId> 84 <artifactId>commons-fileupload</artifactId> 85 <version>1.3.2</version> 86 </dependency> 87 </dependencies> 88 <build> 89 <!-- 注意最下面的build这块一定要配置否则打jar的时候会说找不 到主类 --> 90 <plugins> 91 <plugin> 92 <groupId>org.springframework.boot</groupId> 93 <artifactId>spring-boot-maven-plugin</artifactId> 94 <!-- 注意:记住啊 下面<version>1.4.2.RELEASE</version> 95 这行代码是必须要加的不加的话就全GG了,因为springboot打包有个bug 96 反正这行代码别忘了加 97 --> 98 <version>1.4.2.RELEASE</version> 99 <configuration> 100 <mainClass>com.example.demo.SpringBootDay02Application</mainClass> 101 </configuration> 102 </plugin> 103 </plugins> 104 <!--这里进行配置,后会自动的加载src/main/webapp下的所有文件 :配置Maven 对resource文件 过滤 --> 105 <!-- 我之前遇见的jsp找不到的问题 就是因为没有配置好以下的文件所以才会加载不到jsp配置文件 --> 106 <resources> 107 <resource> 108 <directory>src/main/webapp</directory> 109 <targetPath>META-INF/resources</targetPath> 110 <includes> 111 <include>**/**</include> 112 </includes> 113 </resource> 114 <resource> 115 <directory>src/main/resources</directory> 116 <filtering>true</filtering> 117 </resource> 118 </resources> 119 </build> 120 </project>
1.2,pom.xml中需要注意的地方
注意pom.xml最下面的build这块一定要配置否则打jar的时候会说找不到主类(我标红的地方则是Springboot的启动类路径,咱们的路径肯定不一样修改一下哈)
1.3,启动类代码修改
在启动类当中加上继承 SpringBootServletInitializer类并重写configure方法,这是为了打包springboot项目用的(不是单单实现就完事了,有些代码还需要修改一下,仔细点)
1 package com.example.demo; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.boot.builder.SpringApplicationBuilder; 6 import org.springframework.boot.web.support.SpringBootServletInitializer; 7 8 @SpringBootApplication 9 public class SpringBootDay02Application extends SpringBootServletInitializer{ 10 11 public static void main(String[] args) { 12 SpringApplication.run(SpringBootDay02Application.class, args); 13 } 14 //为springboot打包项目用的 15 @Override 16 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 17 // TODO Auto-generated method stub 18 return builder.sources(this.getClass()); 19 } 20 }
1.4,application.properties文件检查
代码大致不需要修改,就是检查各个应用连接之类的,假如在虚拟机上部署的话则需要进行一些修改,端口号啊,环境配置连接等等
1 server.port=8080 2 server.servlet.context-path=/ 3 debug=false 4 5 spring.datasource.url=jdbc:mysql://localhost:3306/stores-erp?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true 6 spring.datasource.driver-class-name=com.mysql.jdbc.Driver 7 spring.datasource.username=root 8 spring.datasource.password=321 9 10 spring.mvc.view.prefix=/WEB-INF/jsp/ 11 spring.mvc.view.suffix=.jsp 12 13 mybatis.config-location=classpath:mybatis/mybatis-config.xml 14 mybatis.mapper-locations=classpath:mybatis/mappers/*/*.xml 15 mybatis.type-aliases-package=com.example.demo.pojo
2,第一步,点击项目右键,Run As=》Maven Clean进行项目刷新
2.1,第二步,Run As=》Maven insert进行项目打包,假如成功的话则出现以下页面信息:
2.2,第三步,我们找到项目中的target文件就可以看到我们的jar包文件等等了。
2.3,第四步,你可以选择直接把stores-erp-0.01-SNAPSHOT.jar拷贝出去,也可以直接去他目录下找它,我选择的是找到项目中的jar文件的所在地址,在导航栏输入cmd。
2.4,第五步,启动jar包项目,注意:我之前做的时候这边出了个错误,就是加载不到主类等等,是个非常操蛋的错误就是因为少加了个 - 这个坑我提你们踩了- -.(这个执行方式windows和linux上都一样)
3,然后就可以进行访问了效果如下:
作者: 屢敗屢戰
出处: https://www.cnblogs.com/joeyJss/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接;
如有问题可咨询邮箱: 1824293259@qq.com