在云服务器上部署基于Maven的Spring Boot项目

1.首先修改数据库连接的配置文件:

在这里插入图片描述
主要修改username和password要和服务器上的数据库信息一致;

2.其次修改自己项目的服务IP以及端口:
(我自己采用的:serurl=127.0.0.1:8080)

(注:这个端口就是项目配置成功后访问的端口)

3.修改Maven的配置文件pom.xml:
在这里插入图片描述
4.在这里特别注意:(可以通过打成war包或者jar包两种形式)

**

No.1通过war包部署:

**
1.修改打包方式:(上图对号处) <packaging>war</packaging>

2.移除嵌入式tomcat插件:

<dependency>
 	<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
	<!-- 移除嵌入式tomcat插件 -->
	<exclusions>
 		<exclusion>
        	<groupId>org.springframework.boot</groupId>
  			<artifactId>spring-boot-starter-tomcat</artifactId>
 		 </exclusion>
	 </exclusions>
</dependency>

3.添加servlet-api的依赖:(两者选一种)

<dependency>
    <groupId>javax.servlet</groupId>
 	<artifactId>javax.servlet-api</artifactId>
 	<version>3.1.0</version>
 	<scope>provided</scope>
</dependency>
<dependency>
 	<groupId>org.apache.tomcat</groupId>
 	<artifactId>tomcat-servlet-api</artifactId>
 	<version>8.0.36</version>
 	<scope>provided</scope>
</dependency>

4.在启动类的同位置处,重写初始化方法(增加新的类):

package com.lrm;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

/**
 * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
 */
public class SpringBootStartApplication extends SpringBootServletInitializer {
  
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
     // 注意这里要指向原先用main方法执行的Application启动类
     return builder.sources(BlogApplication.class);
    }
}

//注意: 上面的BlogApplication.class就是项目原来的启动类;

5.在项目根目录下(即包含pom.xml的目录)在命令行里输入:
mvn clean package 即可,等待打包完成,若最后出现:
[INFO] BUILD SUCCESS 即为打包成功。

注意:此处有坑!!! (如果你的服务器上的数据库和本地的数据库的相关账户名或者密码不一样的情况下请注意:因为在你打成war包的时候,你先将数据库的相关配置改成了与云服务器适配的;所以此时在本地你跑这个项目肯定是出错的,所以你需要跳过 mvn clean package中的单元检测环节;可通过:
mvn clean install -DskipTests 命令解决!!)

6.然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署。最后在浏览器中输入:

http://localhost:[端口号]/[打包项目名]/

即为发布成功!!!

**

No.2通过jar包部署:

**
1.配置pom.xml文件:(pakaging处修改为jar)

2.其中bulid处一定要配置:(否则打jar的时候会说找不到主类)

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

3.在启动类的同位置处,重写初始化方法(增加新的类)

注:与上面打war包的第4点一样!!

4.同打war包一样的命令执行!

5.将jar包放在tomcat下的webapps目录,通过命令行进入目录并执行:

java -jar blog-0.0.1-SNAPSHOT.jar

注意:此处有坑!!!此时虽然我们可以通过终端启动程序,并成功访问端口,但是如果你退出终端,进程会被kill掉,此时程序只能在你打开终端并执行后才进行服务!!你需要让进程在退出终端后不被杀死!!

1:
java -jar xxx.jar &
说明: 在末尾加入 & 符号

2:
2.1 执行java -jar xxx.jar 后
2.2 ctrl+z 退出到控制台,执行 bg
2.3 exit

完成以上3步,退出SHELL后,jar服务一直在后台运行。

3:
nohup java -jar xxxx.jar &
将java -jar xxxx.jar 加入 nohup &中间,也可以实现

本人采用的是第三种,有效!!
你也可以通过写shell脚本的方式让自己的程序在后台运行!!

参考文章1:(https://www.jb51.net/article/159860.htm)
参考文章2:(https://www.cnblogs.com/zsg88/p/9473843.html)

发布了11 篇原创文章 · 获赞 0 · 访问量 109

猜你喜欢

转载自blog.csdn.net/qq_43395576/article/details/104393616
今日推荐