解决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命令。在本地调试中直接发布。
问题解决!


猜你喜欢

转载自blog.csdn.net/nthack5730/article/details/51166321
今日推荐