IDEA下springboot打包成jar包和war包,並且可以在外部tomcat下執行訪問到
宣告一點,下面打包的過程中,scope一直都是使用預設的範圍
<!--用於編譯jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <!--<scope>runtime</scope>--> </dependency>
把上一章建立好的spring boot專案打包成jar包和war包
【jar和war的區別就是:<packaging>標籤中的值更改就行 如下圖】
=====================================================================================================================================
好了,這裡先打成jar包
使用maven的外掛打包
此時打包出來是有預設的名稱的jar包。然後在命令列下 執行起這個jar包。當然,jar包名字你需要去上面target路徑下去拷貝一下。【是不是很麻煩!!】
然後訪問一下jsp頁面,因為我方法中加了列印,可以看到進來了
但是頁面訪問不到:
然後去jar包中檢視一下,是因為jar包中沒有把webapp下的頁面檔案等打包進去,當然訪問找不到頁面了【如果你想jar包也可以打包webapp下的頁面的話,可以:http://www.cnblogs.com/sxdcgaq8080/p/7715427.html】
好吧,jar包既然打包不成功訪問,那就打包war包:就把jar改成war就好了
【注意:如果嫌棄上面需要去拷貝jar包名字麻煩,想打包出來的名字是自定義的,在build下 規定即可】
在打包成war包
看看 打包出來的war包名字是不是自定義的
然後再執行war包
這下是可以訪問到的了。
看看war包下,是已經將頁面檔案打包進去了。
=======================================================================================================================================
好了 打包暫時打包成功了,直接拿著上面的war包放到一個外部的tomcat中跑起來試一下:
啟動一下:
不成功,按照下面 兩步走,解決當前這個在外部tomcat沒辦法執行起來並訪問的問題:
第一步:
新建一個SpringBootStartApplication 繼承自 SpringBootServletInitializer
作用:因為在外部容器部署的話,就不能依賴於Application的main函數了,而是要以類似於web.xml檔案配置的方式來啟動Spring應用上下文,
此時我們需要在啟動類中繼承SpringBootServletInitializer並實現configure方法,這個類的作用與在web.xml中配置負責初始化Spring應用上下文的監聽器作用類似
【注意】:這個新建的類,與springboot的啟動類是同級的
package com.sxd;