1 修改項(xiàng)目打包類型
在pom.xml里,項(xiàng)目打包類型將jar設(shè)置成war:
1
|
<packaging>war</packaging> |
2 移除內(nèi)置tomcat容器
在pom.xml里設(shè)置:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<dependencies> <!--web啟動(dòng)器依賴--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> <!--移除默認(rèn)啟動(dòng)容器--> <exclusions> <exclusion> <artifactid>spring-boot-starter-tomcat</artifactid> <groupid>org.springframework.boot</groupid> </exclusion> </exclusions> </dependency> |
3 添加servlet-api依賴
若項(xiàng)目的某些工具類會(huì)用到該依賴,如果缺失,會(huì)報(bào)錯(cuò):
/tool/webutil.java:[6,26] 程序包javax.servlet.http不存在
需要在pom.xml里添加如下依賴:
1
2
3
4
5
6
|
<dependency> <groupid>javax.servlet</groupid> <artifactid>javax.servlet-api</artifactid> <version> 3.1 . 0 </version> <scope>provided</scope> </dependency> |
或者下面依賴(任選其一):
1
2
3
4
5
6
|
<dependency> <groupid>org.apache.tomcat</groupid> <artifactid>tomcat-servlet-api</artifactid> <version> 8.0 . 36 </version> <scope>provided</scope> </dependency> |
4 修改項(xiàng)目啟動(dòng)類
spring boot入口類必須實(shí)現(xiàn)springbootservletinitializer接口的configure方法才能讓外部容器運(yùn)行spring boot項(xiàng)目。
原入口類mainapplication.java內(nèi)容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package com.maxbill; import com.maxbill.core.desktop.desktopapp; import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.boot.web.servlet.servletcomponentscan; import org.springframework.context.configurableapplicationcontext; @springbootapplication @mapperscan ( "com.maxbill.base.dao" ) public class mainapplication extends desktopapp { public static configurableapplicationcontext context; public static void main(string[] args) { //啟動(dòng)后臺(tái)服務(wù) context = springapplication.run(mainapplication. class , args); //啟動(dòng)桌面服務(wù) launch(args); } } |
修改后內(nèi)容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package com.maxbill; import com.maxbill.core.desktop.desktopapp; import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.boot.web.servlet.servletcomponentscan; import org.springframework.context.configurableapplicationcontext; import org.springframework.boot.web.servlet.support.springbootservletinitializer; import org.springframework.boot.builder.springapplicationbuilder; @springbootapplication @mapperscan ( "com.maxbill.base.dao" ) public class mainapplication extends springbootservletinitializer{ @override //修改啟動(dòng)類,繼承 springbootservletinitializer并重寫 configure方法 protected springapplicationbuilder configure(springapplicationbuilder builder){ //注意這里要指向原先用main方法執(zhí)行的application啟動(dòng)類 return builder.sources(mainapplication. class ); } public static configurableapplicationcontext context; public static void main(string[] args) { //啟動(dòng)后臺(tái)服務(wù) context = springapplication.run(mainapplication. class , args); //啟動(dòng)桌面服務(wù) launch(args); } } |
5 打包部署項(xiàng)目
maven執(zhí)行命令跳過(guò)測(cè)試打包
mvn clean package -dskiptests
build信息如下
[info] building war: d:\workspace\maxbill-redisplus-master\redisplus\target\redisplus-0.0.1-snapshot.war
[info]
[info] --- spring-boot-maven-plugin:2.0.4.release:repackage (default) @ redisplus ---
[info] ------------------------------------------------------------------------
[info] build success
[info] ------------------------------------------------------------------------
build成功后,在項(xiàng)目target目錄下把war包部署到tomcat的webapps目錄下,例如:
d:\program files\apache software foundation\tomcat 8.0\webapps
啟動(dòng)tomcat服務(wù),在瀏覽器訪問(wèn)
http://localhost:[端口號(hào)]/[打包項(xiàng)目名]/
總結(jié)
以上所述是小編給大家介紹的spring boot將項(xiàng)目打包成war包的操作方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
原文鏈接:http://www.cnblogs.com/ycyzharry/p/9713228.html