关于eclipse中MAVEN WEB工程中编译问题

这几天是被java的环境搞疯了,我先是搭了一个spring+springmvc+mybatis的工程,在家里跑了一下,没有问题,把工程带到公司里用,却一直不能使用。

按常理来说,只要工程发生一点变化,tomcat都会自动重启,自动重新reload。但是我发现我在公司无论怎么改,tomcat没有一点变化,都是之前的工程状态。

原因是因为之前,我把Build Automaticlly给去掉了。导致了eclipse不能及时的把编译文件build到指定目录中去。

勾上了就能同步上去了。


后来,我想了一下,它是怎么样同步,根据什么来同步的呢?

选中工程右键选择properties,找到

Deployment Assembly(部署装配),这里是真正的部署到tomcat的工程。还有一个目录java Build Path

这里有一个output folder文件选项,这里下面的目录也是动态编译的。但是这个classes文件夹在工程中是隐藏的。

在Deployment Assembly 和build Path中的输出文件夹中classes目录是同步 ,但是tomcat实际实际装载的是Deployment Assembly 下面的文件。

打开一个文件夹就可以证明这个问题:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\datag\WEB-INF\classes\

这个目录是tomcat实际装载WEB项目的目录。正好与Deployment Assembly的目录对等。

但是后来我奇葩地发现target下面也有一个datag\WEB-INF\classes\目录,天真的我以为tomcat装载的是它,然而,当我对一个类文件作了修改之后,我发现target下面的个datag\WEB-INF\classes\下的对应的class文件的时间并没有改变,这说明虽然文件已经编译build但是并没有build到这个目录。然而我发现target\classes和\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\datag\WEB-INF\classes\下对应的class文件的修改时间改变了。

现在问题很明朗了,当勾上Build Automaticlly,当类文件发生一点变化,eclipse都会动态编译,然后build到Deployment Assembly和build Path下设置的输出目录,我这里对应的是\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\datag\WEB-INF\classes\和target\classes,而tomcat最终执行的是Deployment Assembly下的目录,紧接着,tomcat就会自动reload工程。


这里还有一个小小的问题target \datag\WEB-INF\classes的目录是哪里来的呢,而且还不会动态更新?

其实这个是maven的产物,我勒个去,你执行maven install就知道了,(我的工程的名字叫datag)

这句话是在控制台输出的。

target \datag\WEB-INF\classes是maven的产物,当然是不会动态更新了,只要当执行maven重新打包的命令的时候,里面的工程才能更新过来。

文章来源:http://www.cnblogs.com/think-in-java/p/4831701.html

java web项目自动部署到Tomcat的原因的更多相关文章

  1. Eclipse中的Web项目自动部署到Tomcat的webapp目录下

    Eclipse中的Web项目自动部署到Tomcat   原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 ...

  2. Eclipse中的Web项目自动部署到Tomcat

    原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误 ...

  3. [转]Eclipse中的Web项目自动部署到Tomcat

    原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...

  4. Eclipse中WEB项目自动部署到Tomcat

    原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误 ...

  5. Eclipse中的Web项目自动部署到Tomcat(转)

    转自:http://www.cnblogs.com/ywl925/p/3815173.html 问题: 这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Eclipse中做 ...

  6. 在Eclipse for mac中配置tomcat,使web项目自动部署到tomcat

    jdk.tomcat的配置就不多说了,网上一大堆. 一.发现问题 在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运 ...

  7. 全网最详细的Eclipse里如何正确新建普通的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...

  8. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在eclipse里,则是File -> new ->  ...

  9. java web项目的部署

    java web项目的部署 我刚开始学着编写java web项目,着实遇到不少麻烦,感觉JAVA真难侍候,好多东西都是手动.手动. 就拿这个web项目在tomcat上的部署来说吧.我在项目的build ...

随机推荐

  1. node-gyp rebuild 卡住?

    最近 npm install 时候经常遇到在 node-gyp rebuild 那里卡很久的情况(大于十分钟),于是研究了一下输出的错误日志解决了这个问题,在这里分享一下. 首先,请检查 node-g ...

  2. WebApi 集成 Swagger

    1. Swagger(俗称:丝袜哥)是什么东西? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同 ...

  3. 基于GTID Replication主从数据不一致操作

    基本的M-S结构   现在master与slave主机数据一致:   mysql> select * from t1; +------+ | id   | +------+ |    1 | | ...

  4. 《构建之法》阅读有疑 与 个人Week1作业

    <构建之法>阅读有疑 在用将近五节课的时间将邹欣老师的书<构建之法——现代软件工程>第二版大致看完.虽然全书是以轻松的口吻与”移山公司”员工的一些趣味谈话来传输一些理念和思想的 ...

  5. 用Qt写软件系列四:定制个性化系统托盘菜单

    导读 一款流行的软件,往往会在功能渐趋完善的时候,通过改善交互界面来提高用户体验.毕竟,就算再牛逼的产品,躲藏在糟糕的用户界面之后总会让用户心生不满.界面设计需综合考虑审美学.心理学.设计学等多因素, ...

  6. 后缀数组 --- HDU 3518 Boring counting

    Boring counting Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=3518 Mean: 给你一个字符串,求:至少出 ...

  7. U3D自定义Inspector项未触发保存事件的解决方案

    1.问题描述与解决方案 1.1.说明 应该只有起步做U3D编辑器插件的部分同行需要了解本文. 该问题源于在做UI插件的时候,发现Inspector面板上手动修改值后,没有触发U3D编辑器本身的修改事件 ...

  8. csharp: Domain-Driven Design(领域驱动设计)

    http://dddsample.sourceforge.net/ https://github.com/citerus/dddsample-core http://dddsamplenet.code ...

  9. Fluent NHibernate other example

    测试用的当前最新版本: sql: --- CREATE TABLE Users ( UserID INT IDENTITY(1,1) PRIMARY KEY, [Name] VARCHAR(50) N ...

  10. java设计模式--工厂模式

       所谓工厂,就是要造产品,比如一个小型砖瓦厂,只有一个窑,既能造砖又能造瓦,这种叫简单工厂模式.规模稍大一点呢,我多个窑,有的窑专门造砖,有的窑专门造瓦,想造别的,比如瓷砖,我再用个专门的窑,这种 ...