一、springboot2.0打war包
springboot内置容器,可以脱离外部容器独立运行,如果不想使用springboot内置的容器就要做一些处理,比如采用tomcat作为应用容器的话就需要把springboot打成war包发布到tomcat中。具体步骤如下:
1.将pom.xml中包类型改为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文件
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
2.cmd命令行进入项目pom.xml所在目录,执行maven命令
mvn clean package -Dmaven.test.skip=true
然后在target目录下会生成jar包
3.独立运行jar包
独立运行的话需要执行,我是在linux上运行的,所以以linux为例
nohup java -jar bootweb-0.0.1.jar &
命令说明:“nohup….&”是后台运行的命令,执行后会将日志输出到nohup.out中,不加这个关闭窗口java命令也会停止。
OK!大功告成