SpringBoot项目在服务器上的部署过程

SpringBoot项目在服务器上的部署过程

注意:打包前,确保你的pom文件中引入了spring-boot-maven-plugin插件

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-maven-pluginartifactId>
			<configuration>
				<executable>trueexecutable>
			configuration>
		plugin>
	plugins>
build>

一、jar包部署

1.打jar包

在idea中打开SpringBoot项目,点击Project Structure。

在这里插入图片描述
在弹出页面中选择。

SpringBoot项目在服务器上的部署过程_第1张图片
选好项目和启动类,点击ok。

SpringBoot项目在服务器上的部署过程_第2张图片
在idea上方的菜单栏中找到Build,点击Build Artifacts,在弹出选项中选择自己刚创建的项,点击build。

SpringBoot项目在服务器上的部署过程_第3张图片
SpringBoot项目在服务器上的部署过程_第4张图片
编译成功后,在左侧的项目展开栏中的out文件夹里,就可以看到.jar为后缀的文件

2.部署

1)上传jar文件到linux上 。

2)在linux的jar文件所在目录,敲命令:
nohup java -jar .jar >log.txt 2>&1 &

项目即以后台运行的方式跑起来了,如无意外,浏览器访问:ip地址:项目端口号就可以看到你运行的项目。

二、war包部署

1.打war包

参考博客:https://www.cnblogs.com/superman-21/p/13018942.html

1)pom文件声明打包格式

<packaging>warpackaging>

2)移除springboot自带的tomcat

<dependency>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-webartifactId>
	<exclusions>
	    <exclusion>
	         <groupId>org.springframework.bootgroupId>
	         <artifactId>spring-boot-starter-tomcatartifactId>
	     exclusion>
   	exclusions>
dependency>

3)添加server-api依赖

<dependency>
    <groupId>javax.servletgroupId>
    <artifactId>javax.servlet-apiartifactId>
    <version>3.1.0version>
    <scope>providedscope>
dependency>

4)添加Servlet初始化器

方式一:在Springboot启动类的同级目录下创建一个类,继承SpringBootServletInitializer 抽象类,代码如下

public class SpringBootStartApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向Springboot启动类
        return builder.sources(Springboot01Application.class);
    }
}

方式二:直接让启动类继承SpringBootServletInitializer ,重写configure方法,代码与方式一相同

5)打包

打开maven工具栏

SpringBoot项目在服务器上的部署过程_第5张图片
点击package(如果项目结构栏中残留有之前打包留下的target目录,可以先clean下)
SpringBoot项目在服务器上的部署过程_第6张图片
编译完成后,即可在左侧的项目结构栏的target目录下找到war文件

2.部署

将war包放到tomcat的webapp目录下,运行tomcat就可以访问了
ip地址:8080/war包名/访问首页的url

部署后运行项目潜在的问题

部署完成后,可能出现静态资源或controller无法访问的问题,看了一位博主的文章,才知道是资源引用路径和controller路径错误引起的:这是由于tomcat上部署的项目,访问任何任何资源的路径都得以项目名打头,解决方法是:①静态资源href后的引用路径不能是绝对路径,即不以/开头即可②controller的路径都需要添加项目名。

详情参考博客:https://blog.csdn.net/u012149181/article/details/80598246

附言

如有错误之处,还望各位指出

你可能感兴趣的:(springboot,java,tomcat,spring,boot)