eclipse mavenWeb項目真正實現熱部署(修改java代碼和頁面文件不用重啟tomcat)


 
 
 

1.前言

  首先,本文創作靈感源於博客園園作者signheart,特此鳴謝!原文鏈接見文末推薦;

  百度都搜破了,全網講的都是如何將maven項目部署到tomcat上,對於熱部署的認知,真是令人汗顏!

  其次說說熱部署的含義:

  熱部署原來被定義為:tomcat啟動后,如果你往webapps目錄下,添加新的項目,tomcat會實現自動將其發布的功能,這時,就叫做熱部署。

  網上所實現的熱部署,也是這樣:通過修改pom.xml,利用maven插件,運行tomcat7:run命令自動將maven項目進行打包,並發布到tomcat上。

  純JavaWeb項目對熱部署的定義為:修改Java文件和其它文件不需要重啟tomcat,可以即時生效。

  本文將帶你一步一步實現真正的熱部署!

2.情景展示

  maven項目標准目錄結構展示

  maven項目Java文件的默認編譯位置 

  在eclipse中,MavenWeb項目如何實現熱部署? 

3.錯誤方式

  手動修改maven項目的class文件的默認輸出位置

  第一步:將class文件的編譯位置:demo_WebService2/target/classes,統一改為:demo_WebService2/src/main/webapp/WEB-INF/classes;

  第二步:采用了"Default output folder"(選中"Allow output for source folders"可以看到);

  第三步:Tomcat熱部署訪問:D:\WorkSpaces\eclipse2016\demo_WebService2\src\main\webapp;

  雖然項目也可以正常啟動並運行,但是這樣的弊端有二:

  其一,無法單獨運行Java類,強制運行時,會報錯:找不到或無法加載主類;

  其二,不能更新maven項目,一但更新maven項目,就會導致class文件的默認位置還原為target/classes目錄下。

  什么時候需要更新maven項目?pom.xml更改后,必須更新,否則不生效。

4.解決方案

  修改pom.xml改變修改maven項目的lass文件的默認輸出位置。

  改動一:更改maven默認的打包目錄

  在plugins標簽體內添加

<!-- 更改maven默認的打包目錄 -->
<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <webappDirectory>${project.basedir}/src/main/webapp</webappDirectory>
        <warSourceDirectory>${project.basedir}/src/main/webapp</warSourceDirectory>
    </configuration>
</plugin>

  改動二:更改class文件的編譯位置

  在build標簽體內添加

<outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>

  第三步:保存並更新maven項目(Alt+F5)

  選中項目-->右鍵-->Build Path-->Configuire Build Path

  class文件的輸出位置已經變更至WEB-INF下(測試除外)

  第四步:修改server.xml

  Server工程-->打開要熱部署項目所對應的tomcat的server.xml文件  

  在Host標簽體內添加Context標簽,指定項目發布位置,及訪問路徑

  第五步:以debug模式運行項目即可。

  第六步:網頁訪問

    

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:

 


免責聲明!

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



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