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

 
 
 

1.前言

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

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

  其次說說熱部署的含義:tomcat

  熱部署原來被定義爲:tomcat啓動後,若是你往webapps目錄下,添加新的項目,tomcat會實現自動將其發佈的功能,這時,就叫作熱部署。併發

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

  純JavaWeb項目對熱部署的定義爲:修改Java文件和其它文件不須要重啓tomcat,能夠即時生效。eclipse

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

2.情景展現

  maven項目標準目錄結構展現maven

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

  在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模式運行項目便可。

  第六步:網頁訪問

    

寫在最後

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

 相關推薦:

相關文章
相關標籤/搜索