Idea对SpringBoot项目进行打包发布

前段时间,在写的项目需要打包发布,放到Tomcat上面运行,结果本以为是很简单的事情,还是浪费了好一会...,本着面向google编程的思想,查了一些资料,迟迟无法解决。后面发现,SpringBoot项目打包和其他项目是不同的,需要对入口启动类进行一些调整。这里记录一下使用idea对SpringBoot项目进行打包的过程。

如果是jar
生成jar包则不需要增加,默认为jar包, 在pom.xml指定打成的包为:

<packaging>jar</packaging>  

如果是war包。
需在pom.xml指定打成的包为:

<packaging>war</packaging>  

build节点下添加  <finalName>你想要的项目名字</finalName>

          

以打成war包为例

因为是SpringBoot项目,需要对启动类进行一些修改,否则就算打包完成,运行tomcat时会出现接口无法访问的问题

让启动类继承SpringBootServletInitializer类,重写configure方法,参考我的启动类文件,可以直接复制。DemoApplication是我的启动类名,根据需要自行修改为自己的启动类

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
 
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    
    //重写configure方法,否则在部署到tomcat时,接口将访问不到
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DemoApplication.class);
    }
}


修改后,找到Maven这个选项卡,双击运行Lifecycle下的package,等待打包完成。

打包完成后,控制台输出编译成功的提示信息

如果打包成功,项目的根目录下会生成一个target文件夹,文件夹中标红的war文件就是打包后生成的war包了

将这个war包放到tomcat的webapps目录下,运行tomcat

*在运行tomcat时,tomcat会将war包解压出来,相当于项目多了一层目录,tomcat运行完成时可以查看webapps这个目录。所以在访问我们的项目时,要加上这个层目录

例如我本来是访问http://localhost:8080/index,现在要访问http://localhost:8080/demo-0.0.1-SNAPSHOT/index,不过这个目录名还是可以改的,在tomcat运行解压完后,直接修改war文件解压出来的文件夹名称即可

以打成Jar包为例

  1. 先按上面设置和打包

  2. 此时再进入到target目录下,输入java -jar AmaxWechat-1.0.0-SNAPSHOT.jar,这个就是运行jar包了

    idea如何打包发布springboot项目

  3. 点击回车,在控制台出现下图的内容时说明就运行成功了

    idea如何打包发布springboot项目

注意事项

  • 注意要先安装java和maven环境

将此jar包放到linux中的某个目录下,这时候直接输入jar -java jar包名称,即可启动项目如下图所示表示启动成功(但此启动非后台启动,关闭窗口后服务将会同时关闭)

jar 后台启动,我们可以采用nohup命令去启动,如下:> nohup.out表示将日志输出到nohup.out文件,如果我们要输出到其他文件可以修改

nohup java -jar carnotgzc.jar > nohup.out &

这时候我们需要打开nohup看启动日志,启动成功之后关闭linux连接,项目依然在启动中,不受影响

jar后台启动的另一个方式

(java -jar carnotgz.jar &) > /dev/null


 
————————————————
参考: 

https://blog.csdn.net/liq816/article/details/92659785

https://blog.csdn.net/weixin_39885435/article/details/90140019

猜你喜欢

转载自blog.csdn.net/qq_31432773/article/details/115870816