1. 程式人生 > >IDEA下springboot打包成jar包和war包,並且可以在外部tomcat下執行訪問到

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;