学习springboot小笔记(六) ----IDEA用maven打包成war,放到tomcat中发布项目

跟着别人的demo自己也做了个demo,在打包到服务器的时候,发现生成的war包根本不起作用,要么是空白页面,要么是404。

找了很久,在大佬的建议下,乖乖看了 英文文档,跟着做,才知道在IDEA的springboot war包应该是这样生成的。

1、添加依赖(tomcat的依赖,更准确的说是 打包的时候 不要加上 tomcat)、将jar改成war】

 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>   <!--表示生成war包的时候不要将tomcat打包进去-->
        </dependency>


        将<packaging>jar</packaging>  改成    <packaging>war</packaging>

2、重写启动类,让启动类继承SpringBootSerletInitializer,重写 configure函数

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;


//继承SpringBootServletInitializer
@SpringBootApplication
public class ZhangjifaPractice1Application extends SpringBootServletInitializer {

    // 重写 configure方法
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
    {
        return application.sources(ZhangjifaPractice1Application.class);
    }

    //保持不变
    public static void main(String[] args) {
        SpringApplication.run(ZhangjifaPractice1Application.class, args);
    }
}

3、用maven插件生成war包,maven插件是在IDEA的右边(“maven project”就是了),打开Lifecycle,双击clean,然后双击package,就能在项目目录下面的target文件夹上面找到war包,这时候,将war包放在配置号环境的tomcat目录下面的webspps目录下面,重启tomcat,会看见自动生成的项目文件夹,访问的时候就是用,IP:端口 / 项目文件夹名称 / 控制器的访问value  就可以访问页面了。

maven插件可能有些人没注意到在哪里,如下图,是在IDEA右边那里的

                                                     

点击 Maven Projects后就会看到:

                                                  

先双击clean,然后 双击 package 就能生成 war包了。生成的war包是放在项目文件加的 target文件夹下面,

                                          

4、本地tomcat测试:

然后将 war包放到tomcat目录下的webapps,重启tomcat,发现tomcat生成了一个文件夹了。

                                 

用浏览器  127.0.0.1:8080/zhang-0.0.1-SNAPSHOT/对应控制器的value就可以访问额。

5、云服务器测试

同样的,将 腾讯云服务器 配置jdk和tomcat环境后,(服务器的端口要打开),将war包上传(可以用WinSCP软件上传)到tomcat目录下webapps,重启tomcat,也可以访问了。

6、有个坑:

tomcat版本若果有点儿旧的话,可能war包会不起作用,刚开始用了电脑以前装的tomcat7,哪怕是用同学能正常访问的war包放在我自己的tomcat也不支持,后来tomcat更新了一下,就可以了。

猜你喜欢

转载自blog.csdn.net/zhang_li_ke/article/details/81194911