解決Tomcat部署Maven異常:Deployment is out of date due to changes in the underlying project contents

之前出現這個問題的時候一直沒有得到很好的解決方案,在網絡上面找到的也是不大適用於Maven的,而且很多寫的真的不夠詳盡,最主要是沒有一個解決流程,都是幾句話帶過。在這裏我就打算給大家詳細說一下出現Deployment is out of date due to changes in the underlying project contents這個問題的時候一般需要怎樣解決。



首先聲明下,老貓使用Maven來管理工程的,這個方法同樣適用於其他形式的工程(非Maven管理的)。

此文老貓原創,轉載請加本文連接:http://blog.csdn.net/nthack5730/article/details/51166321

更多有關老貓的文章:http://blog.csdn.net/nthack5730





很多時候在Tomcat部署的時經常出現如下的蛋疼問題:
Edit
Deployment is out of date due to changes in the underlying project contents. You'll need to 'Redeploy' the project to update the deployed archive.


     沒錯,就是蛋疼,好好地怎麼就不行,我已經被這個問題折磨得很慘烈了!!這個問題是有時候出現,有時候自己又正常了,特別是在換了一個工作空間並且導入項目之後!但是我們不可能每次都去換工作空間再導入項目,這是一個很傻逼的做法。
     因此我對其進行了一番蛋疼的研究:將原本修復好的項目再弄出這個問題。終於找到了原因。
       



首要原因:因爲依賴的JAR文件沒有加載進來!
    多數是因爲沒有在打包編譯的設置裏面加入Maven的JAR包的依賴打包,要確保Maven在編譯的時候能夠正確打包每個資源的對應地址!
    有人說在【Java Build Path】裏面去檢查是否少了Jar包,可是這個是一個Maven管理的工程,基本上自己加進來的JAR包是少之又少的!所以基本上這個問題和我寫的Maven的依賴是有很大的關係的。
     經過一番檢查,發現就沒有加入Maven Dependencies這個。
     非Maven工程就檢查自己少了哪個JAR包沒有引入或者是沒有正確指定打包路徑。
     在【項目】右鍵--->【屬性】--->【Myeclipse】--->【Deployment Assembl....】這個選項卡查看





如何添加:
在剛剛的頁面中點擊【添加】,然後選擇【Java Build Path Entries】



再選擇【Maven Dependencies】,然後點擊【完成】





此文老貓原創,轉載請加本文連接:http://blog.csdn.net/nthack5730/article/details/51166321

更多有關老貓的文章:http://blog.csdn.net/nthack5730



如果按照上面的方法操作還是提示出錯的話,記得去檢查你們的Maven的各個級別的依賴關係,看清楚是不是在調用的時候有import進來但是在<dependencies>裏面沒有依賴,這也是造成文件鎖定訪問出錯的原因之一。
每次修改和【clean deploy】項目之後就要在Maven中update一下所修改過的項目,否則也會出現

最後附上爲了保證deploy打包編譯正常,需要在Maven項目中的pom.xml添加以下配置:【指定打包成WAR的插件和不檢查web.xml文件】
Edit
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>true</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>



再次重申下:
如果按照上面的方法操作還是提示出錯的話,記得去檢查你們的Maven的各個級別的依賴關係,看清楚是不是在調用的時候有import進來但是在<dependencies>裏面沒有依賴,這也是造成文件鎖定訪問出錯的原因之一。
每次修改和【clean deploy】項目之後就要在Maven中update一下所修改過的項目,否則也會出現這個問題。

同時注意要在pom中確保項目打包成WAR格式:
<packing>war</packing>



在Tomcat中重新Redeploy就可以了。不用通過Maven的clean deploy命令。在本地調試中直接發佈。
問題解決!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章