idea中java springboot项目打包jar、war

此两种打包方式为本人在学习java web过程中所记录,无法保证适用于所有人的情况。另,本文测试项目代码来自B站教程《新手一节课入门spring boot,手把手教你写java web和接口

一、打包为jar包

jar包是默认的打包方式,一般都采用的是1.8版本的java jdk,只要服务器上也有该java环境,不需要额外安装tomcat也可以运行。运行命令为 “java -jar jar文件的路径”

java -jar /Users/amin/Desktop/test5/target/demo-0.0.1-SNAPSHOT.jar

在打包的时候选择了clean compile package 三个maven命令进行打包。

打包后会在日志中输出打包文件所在的路径。

下面的执行命令会把日志文件输出到指定的文件,并且进程会在后台运行,如果不加nohup命令则关闭终端窗口就会结束进程。

nohup java -jar jar文件路径 >temp.txt &

二、打包为war包

1、修改启动Application文件继承SpringBootServletInitializer,重写configure方法

public class DemoApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
        return builder.sources(DemoApplication.class);
    }

2、修改pom.xml

增加一行代码

<packaging>war</packaging>

3、打包war包

4、上传并适用war包

原来的war包名字太长可以重命名后上传到服务器tomcat的webapps目录下。上传完毕后重启下tomcat会解压war包。

如果是用war包的方式发布,则访问端口有服务器上tomcat的使用端口为准,在idea里面配置的server port是不生效的。因为我的war包解压后创建的与war包同名文件路径为snapshot,所以访问url的时候也记得加上该路径。

如果遇到war包不会自动加载解压,请确保tomcat有操作改war包的权限,我因为使用的是宝塔,但是是通过ssh的admin用户上传的war包,导致权限不对tamcat无法解压。后来将war包权限所有者改成777/www就可以了。

如果war包不会自动解压也有可能是tomcat的server.xml里面的配置不对(默认unpackWARs是true)

其他参考资料:

https://blog.csdn.net/qq_22638399/article/details/81506448

https://blog.csdn.net/qq_34491508/article/details/91490434

https://baijiahao.baidu.com/s?id=1624279413036115913

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/idea-java-springboot-jar-war-package/

赞赏

微信赞赏支付宝赞赏

发表评论