使用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.1,第一步,

  点击项目右键,Run As=》Maven Clean进行项目刷新

 

2.2,第二步,

  Run As=》Maven insert进行项目打包,假如成功的话则出现以下页面信息:

2.3,第三步,

  我们找到项目中的target文件就可以看到我们的jar包文件等等了。

2.4,第四步,

  你可以选择直接把stores-erp-0.01-SNAPSHOT.jar拷贝出去,也可以直接去他目录下找它,我选择的是找到项目中的jar文件的所在地址,在导航栏输入cmd。

2.5,第五步,

  启动jar包项目,注意:我之前做的时候这边出了个错误,就是加载不到主类等等,是个非常操蛋的错误就是因为少加了个 -  这个坑我提你们踩了- -.(这个执行方式windows和linux上都一样)

3,然后就可以进行访问了效果如下:

 

原文地址:https://www.cnblogs.com/joeyJss/p/11174884.html