最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Maven+Docker的WebApp打包與部署全過程

 更新時間:2026年02月02日 08:56:46   作者:那年一路北  
這篇文章主要介紹了基于Maven+Docker的WebApp打包與部署的相關(guān)資料,文中通過代碼講解了如何找到正確的JAR包、覆蓋Docker使用的JAR、構(gòu)建Docker鏡像、解決Docker構(gòu)建失敗的問題以及在服務(wù)器上部署,需要的朋友可以參考下

一、背景說明:為什么要這么折騰一套 Maven + Docker 流程?

在實際項目開發(fā)中,代碼寫完 ≠ 可以上線。尤其是 Java Web 項目,往往涉及:

  • 多模塊 Maven 工程

  • WebApp 主模塊

  • Docker 鏡像封裝

  • 離線/內(nèi)網(wǎng)服務(wù)器部署

很多同學(xué)在這個階段會遇到幾個典型問題:

  1. IDEA 里代碼改好了,但 Docker 里跑的還是舊代碼

  2. Maven 打包出來的 JAR 不知道該用哪個

  3. Docker build 一直卡在 openjdk 鏡像拉取

  4. 服務(wù)器上更新一次代碼,要手動搞半天

本文將嚴(yán)格按照你當(dāng)前 powergrid 項目的真實流程,從 IDEA 打包開始,一步一步,完整講清楚:

如何把最新 Java Web 代碼,穩(wěn)定、可控地打包成 Docker 鏡像,并部署到服務(wù)器運行

二、項目整體結(jié)構(gòu)說明(先搞清楚你在操作什么)

在開始之前,我們先明確幾個關(guān)鍵目錄(非常重要,比如我的項目):

com.powergrid
├── powergrid-admin        # Web 主程序(真正運行的模塊)
├── powergrid-common       # 公共模塊
├── powergrid-framework    # 框架模塊
├── ...
 
powergrid-docker
├── webapp
│   ├── Dockerfile
│   ├── powergrid-admin.jar   # Docker 實際使用的 JAR
│   └── ...
├── exported_images
│   └── powergrid-docker-webapp.tar

一句話記憶法

?? Maven 在 powergrid-admin/target 里產(chǎn)出 JAR
?? Docker 只認(rèn) powergrid-docker/webapp 里的 JAR

中間這一步「搬運 + 覆蓋」,就是 90% 人出問題的地方。

三、第一階段:使用 IDEA + Maven 正確打包項目

3.1 為什么一定要用 Maven Lifecycle?

你的項目是一個 多模塊 Maven 工程,如果你只單獨對某個模塊打包:

  • 很可能依賴沒編全

  • 很可能版本不一致

正確做法:從根模塊統(tǒng)一打包。

3.2 IDEA 中的具體操作步驟(圖形化)

第一步:打開 Maven 面板

在 IDEA 右側(cè),點擊 Maven 面板,你會看到類似:

powergrid
├── Lifecycle
│   ├── clean
│   ├── package
│   ├── install

?? 注意:

  • 請選擇最頂層的 powergrid(不是 admin)

第二步:執(zhí)行 clean

  • 雙擊 Lifecycle → clean

  • 作用:清空歷史編譯產(chǎn)物

這是一個好習(xí)慣,避免舊代碼污染新包。

第三步:執(zhí)行 package

  • clean 完成后

  • 雙擊 Lifecycle → package

如果你擔(dān)心測試失敗:

?? 點擊 Maven 面板上的 ? Skip Tests

第四步:確認(rèn)打包成功

控制臺看到以下內(nèi)容,說明成功:

[INFO] BUILD SUCCESS
[INFO] Finished at: xxxx

并且所有模塊都是 SUCCESS。

四、第二階段:找到真正要用的 JAR 包

4.1 JAR 在哪里?(重點)

Maven 打包完成后:

  • 真正要運行的 JAR 一定在:

powergrid-admin/target/

你會看到類似:

powergrid-admin.jar

4.2 為什么是 admin 模塊?

因為:

  • admin 是 Spring Boot 啟動模塊

  • 其他模塊只是被依賴

Docker 運行的就是它。

五、第三階段:覆蓋 Docker 使用的 JAR(最關(guān)鍵)

5.1 Docker 只認(rèn)一個名字

查看 webapp/Dockerfile,你會看到類似:

COPY powergrid-admin.jar /app/app.jar

?? 這意味著:

Docker 只會找 powergrid-admin.jar

5.2 正確覆蓋步驟(一步都不能錯)

1?? 復(fù)制新生成的 JAR

powergrid-admin/target/powergrid-admin-3.8.9.jar

2?? 粘貼到 Docker 目錄

powergrid-docker/webapp/

3?? 刪除舊文件

4?? 重命名為:

powergrid-admin.jar

5.3 常見錯誤(踩坑警告)

? 沒改名
? 放錯目錄
? 覆蓋失敗

結(jié)果:Docker 跑的還是舊代碼。

六、第四階段:Docker 構(gòu)建鏡像

進(jìn)入 webapp 目錄:

cd D:\com.powergrid\java\powergrid-docker\webapp\ 

執(zhí)行構(gòu)建:

docker build -t powergrid-docker-webapp . 

七、Docker 構(gòu)建失?。簅penjdk:8-jdk 拉不下來怎么辦?

這是你這個環(huán)境非常典型的問題。

7.1 問題本質(zhì)

  • 本地沒有 openjdk:8-jdk

  • 鏡像源 403

  • Dockerfile 又強依賴

7.2 解決思路:移花接木(非常實用)

第一步:加載舊鏡像

docker load -i ..\exported_images\powergrid-docker-webapp.tar 

第二步:查看鏡像

docker images 

第三步:改名偽裝

docker tag powergrid-docker-webapp:latest openjdk:8-jdk 

第四步:重新 build

docker build -t powergrid-docker-webapp . 

Dockerfile 會“以為”自己找到了基礎(chǔ)鏡像。

八、第五階段:服務(wù)器部署(三板斧)

8.1 傳輸鏡像

把新的 powergrid-docker-webapp.tar 傳到服務(wù)器。

8.2 加載鏡像

docker load -i exported_images/powergrid-docker-webapp.tar 

8.3 重啟服務(wù)

docker compose up -d 

8.4 查看日志

docker logs -f --tail=100 powergrid-docker-webapp 

九、完整流程總結(jié)(必背)

IDEA
 ↓
Maven clean
 ↓
Maven package
 ↓
powergrid-admin/target/*.jar
 ↓(復(fù)制 + 重命名)
powergrid-docker/webapp/powergrid-admin.jar
 ↓
docker build
 ↓
docker load
 ↓
docker compose up -d

十、結(jié)語

這套流程的核心不是 Docker,也不是 Maven,而是:

你是否清楚每一步“產(chǎn)物在哪里、被誰用、什么時候更新”

只要你理解了這一點:

  • 換服務(wù)器

  • 換項目

  • 換鏡像源

你都能舉一反三。

到此這篇關(guān)于基于Maven+Docker的WebApp打包與部署的文章就介紹到這了,更多相關(guān)Maven Docker的WebApp打包部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker(黑馬spring?cloud筆記)詳解

    Docker(黑馬spring?cloud筆記)詳解

    這篇文章主要介紹了Docker(黑馬spring?cloud筆記)詳解,本文章內(nèi)容詳細(xì),具有很好的參考價值,希望對大家有所幫助,需要的朋友可以參考下<BR>
    2023-01-01
  • Docker數(shù)據(jù)存儲總結(jié)

    Docker數(shù)據(jù)存儲總結(jié)

    今天小編就為大家分享一篇關(guān)于Docker數(shù)據(jù)存儲總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • docker關(guān)閉mysql端口映射的使用方式

    docker關(guān)閉mysql端口映射的使用方式

    這篇文章主要介紹了docker關(guān)閉mysql端口映射的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 如何清理docker產(chǎn)生的垃圾文件

    如何清理docker產(chǎn)生的垃圾文件

    這篇文章主要介紹了如何清理docker產(chǎn)生的垃圾文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 國內(nèi)可用的Docker鏡像源測試指南

    國內(nèi)可用的Docker鏡像源測試指南

    在使用 Docker 時,由于網(wǎng)絡(luò)原因,直接從 Docker Hub 拉取鏡像可能會遇到速度緩慢甚至無法訪問的情況,因此,使用國內(nèi)的 Docker 鏡像源可以顯著提升鏡像拉取速度,本文將介紹如何選擇和測試國內(nèi)可用的 Docker 鏡像源,需要的朋友可以參考下
    2025-02-02
  • Docker load之后鏡像名字為none問題解決方法

    Docker load之后鏡像名字為none問題解決方法

    這篇文章主要介紹了Docker load之后鏡像名字為none問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 解決docker拉取mysql鏡像太慢的情況

    解決docker拉取mysql鏡像太慢的情況

    這篇文章主要介紹了解決docker拉取mysql鏡像太慢的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • windows下Docker部署Flask的詳細(xì)教程

    windows下Docker部署Flask的詳細(xì)教程

    這篇文章主要介紹了windows下Docker部署Flask的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • 如何使用Docker部署Go Web應(yīng)用的實現(xiàn)

    如何使用Docker部署Go Web應(yīng)用的實現(xiàn)

    這篇文章主要介紹了如何使用Docker部署Go Web應(yīng)用的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 使用Docker方式啟動tomcat,訪問首頁出現(xiàn)404的解決方案

    使用Docker方式啟動tomcat,訪問首頁出現(xiàn)404的解決方案

    這篇文章主要介紹了使用Docker方式啟動tomcat,訪問首頁出現(xiàn)404的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03

最新評論

泉州市| 德化县| 新巴尔虎左旗| 屏东县| 车险| 郎溪县| 河北省| 固安县| 独山县| 涿鹿县| 广饶县| 安顺市| 台州市| 鹿泉市| 新干县| 白朗县| 汾西县| 泗水县| 高雄县| 长春市| 汝南县| 金昌市| 浑源县| 临潭县| 繁峙县| 邯郸市| 富锦市| 宁国市| 平泉县| 陇川县| 孟州市| 始兴县| 炎陵县| 金湖县| 汉阴县| 日土县| 宿松县| 本溪| 腾冲县| 盐亭县| 沁源县|