Spring Boot項目的打包和部署


補充一點:搜索了下別人Spring Boot部署方案,大多都說:①packaging設為war;②要添加Spring Boot的tomcat依賴;③修改output路徑,但是使用STS新建Spring Boot項目的話,前面選擇正確,POM里面會自動添加①和②,同時不需要③。

所以,建議使用STS創建Spring Boot項目!


 

在群里看到有人問“為什么SpringBoot項目打的war包,部署到tomcat之后出錯”,於是動手測試了一番 (本人並沒在生產環境下用過Spring Boot)。

先說結論

  • 可以直接右鍵導出(Export..)為War文件,部署到Tomcat可以正常啟動、訪問。
  • 可以maven package,同樣是打成War文件,部署到Tomcat可以正常啟動、訪問。
  • 但是,二者的War包大小是不同的,maven package打成的War包更大一些,下面是多出來的內容:
    • image
    • image

 

目前尚不清楚為什么二者都可以正常執行,猜測:可能是因為這個測試項目沒有用到WebSocket、EL等功能,僅用到Servlet,但這個已經由Tomcat提供了。--稍后測試。

 

 

測試項目為STS創建的Spring Boot項目,Maven(類型)+War(打包)+Web(依賴),僅提供了一個測試用的Controller。

 

具體操作步驟如下:

1、在STS中新建Spring Starter Project,打包方式選擇War

image

2、下一步,選擇依賴,這里僅做示意,所以只選擇了Web依賴。

image

3、點擊完成,直接下載,然后等候STS導入新建項目成功。

4、編寫Controller,同樣僅編寫了一個用於示意,內容如下:

package win.larryzeal.deploy.web.controller;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author LarryZeal
 *
 */
@RestController
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping("/{name}")
    public String hello(@PathVariable String name){
        return "hello "+name;
    }
}

很簡單的Controller,就是返回字符串。

5、打包方式1:右鍵導出War包 -- 同傳統的JavaWeb項目,然后部署即可

image

6、打包方式2:maven package

可以在項目文件夾下進行CMD命令行操作:mvn package 。

也可以在STS中設置:

image

image

執行結果如下:

image

此時,在 target/ 下面就會生成一個War包,部署即可(建議先改名,否則項目路徑太長,不便於輸入):

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM