一、springboot2.0打war包

springboot内置容器,可以脱离外部容器独立运行,如果不想使用springboot内置的容器就要做一些处理,比如采用tomcat作为应用容器的话就需要把springboot打成war包发布到tomcat中。具体步骤如下:

1.将pom.xml中包类型改为war

spring boot war包在哪里 spring boot打war包_spring boot war包在哪里

2.网上有人说需要去掉pom.xml中对tomcat的依赖,防止与外部容器冲突。

但是我用springboot2.0没去掉也没事儿,也是可以成功打包并发布的。
如果直接打包报jar包冲突等错误,那就去掉试试。

<!—直接去掉就行了,但是我没有去掉也一样好使—>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

3.采用maven命令进行打包,如果没有maven就安装一个吧。

首先进入工程目录,pom.xml所在目录,然后执行下面的maven命令

mvn clean package  -Dmaven.test.skip=true

然后会在IDE(我用的是STS)的target目录中会生成war文件

spring boot war包在哪里 spring boot打war包_maven_02

4.遇到的坑

不知道我哪里配置的不对,每次构建项目后.classpath文件中的resouce后面会加入exclude内容,exclude的内容包含springboot的配置文件application.properties,因此打包时没有把配置文件打进去,就报错

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.hibernate.Application]; nested exception is java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist

因此需要将classpath中resource中的exclude内容删掉,不将application.properties作为例外不打入包中,就好了。

二、springboot2.0打可运行jar包

1.修改包类型为jar

spring boot war包在哪里 spring boot打war包_springboot2打war包_03


2.cmd命令行进入项目pom.xml所在目录,执行maven命令

mvn clean package  -Dmaven.test.skip=true

然后在target目录下会生成jar包

spring boot war包在哪里 spring boot打war包_spring boot war包在哪里_04


3.独立运行jar包

独立运行的话需要执行,我是在linux上运行的,所以以linux为例

nohup java -jar bootweb-0.0.1.jar &

命令说明:“nohup….&”是后台运行的命令,执行后会将日志输出到nohup.out中,不加这个关闭窗口java命令也会停止。

OK!大功告成