springboot项⽬部署(war包)
将springboot项⽬打包成war,并且部署到tomcat。⽐较⿇烦,⾃⼰踩的坑也⽐较多。算了⼀下,bug的时间,有两天熬到凌晨2点。修改l使得打包成war
<groupId>com.yanzhen</groupId>
<artifactId>dormitory</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description>Demo project for Spring Boot</description>
<packaging>war</packaging> <!--更改这⾥-->
修改l排除内置的Tomcat(不然报错404)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--添加以下部分-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
添加tomcat启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
在build配置项⽬的打包名
<build>
<finalName>dormitory</finalName>
</build>
打包之后的项⽬名就是dormitory
修改启动类
继承⾃SpringBootServletInitializer并重写SpringApplicationBuilder⽅法
@SpringBootApplication
@MapperScan({"com.dj.mapper"})//配置到mapper
public class DormitoryApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DormitoryApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DormitoryApplication.class);
}
}
spring framework jar包maven打包
先执⾏maven clean ,再执⾏maven package,那么就会在target⽬录下⽣成了dormitory.war
部署到tomcat
将dormitory.war放⼊tomcat中的webapps
启动tomcat
在windows中运⾏,linux类似
cd bin
startup.bat
启动成功之后,会发现⽣成了⼀个dormitory的⽂件夹,项⽬也运⾏起来了。
测试
测试注意点(⼀定要看)
由于不使⽤Spring Boot ⾃带的Tomcat,所以在application中配置服务器server是⽆效的。
如果需要修改端⼝port,修改tomcat的端⼝,即这边设置的端⼝也不会⽣效,会使⽤tomcat的默认端⼝。]
tomcat修改默认端⼝:
如果部署到云服务器需要开放两边的端⼝,宝塔和服务器的
如果需要context-path,需要在前⾯设置build的打包名改成context-path的值(打包名就不⽤/)
即
<build>
<finalName>dormitory</finalName>
<build>
如果你没有设置context-path,你想要访问的效果是localhost:8080/login,那么你就需要将打包名改成ROOT <build>
<finalName>ROOT</finalName>
<build>
这样项⽬就会直接编译到原本ROOT⽂件中
参考链接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论