关于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. Hibernate核心类用法-使用Transaction管理事务

    一个典型的事务应该使用下面的形式 在创建完Session对象后即使用beginTransaction()启动事务 从此开始直到commit()之间的代码 都会处于同一个事务中 这两个函数之间所有的数据 ...

  2. 关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目

    关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目,请大家鉴定,不足之处,敬请指教! 第1到3题解答如下: public enum QuestionTy ...

  3. SeaJS 模块化加载框架使用

    SeaJS 是一个遵循 CMD 规范的模块化加载框架 CommonJS,CMD,AMD等规范后文会提到,这里主要先了解如何在代码中使用. 如果你有使用过nodejs ,那么理解起来就容易多了. 我们通 ...

  4. Web 前端颜色值--字体--使用,整理整理

    做网页时经常挑选不好颜色吧...多看看颜色值,或者自己配吧.... 颜色值 CSS 颜色使用组合了红绿蓝颜色值 (RGB) 的十六进制 (hex) 表示法进行定义.对光源进行设置的最低值可以是 0(十 ...

  5. 【Win10】单元测试中捕获异步方法的指定异常

    温馨提醒:本文需要知道什么是单元测试才能阅读. 在之前 WPF.ASP.NET 中,单元测试要捕捉指定异常,我们是通过 ExpectedExceptionAttribute 来实现的.如下图: 但是, ...

  6. ok6410 android driver(9)

    In this essay, I will write the JNI to test our leds device. If you don't know how to create a jni p ...

  7. 微软开源资源 NET Foundation Projects

    网络基础设施.在管理项目(管理工作)的网络基础.目前主要包括网络平台上编译通过.(“罗斯林”)以及项目的ASP.NET的家庭,都是开放的微软开放的技术来源,Inc.(MS开放技术).Xamarin贡献 ...

  8. C#设计模式——装饰者模式(Decorator Pattern)

    一.例子在软件开发中,我们往往会想要给某一类对象增加不同的功能.比如要给汽车增加ESP.天窗或者定速巡航.如果利用继承来实现,就需要定义无数的类,Car,ESPCar,CCSCar,SunRoofCa ...

  9. C#如何获取CPU处理器核心数量

    有几条不同的处理器信息,您可以获得有关的信息:物理处理器数量.核心数量和逻辑处理器数量,这些可以不同.两颗双核超线程(启用)处理器的机器情况下有:2个物理处理器.4个核心和8个逻辑处理器. 逻辑处理器 ...

  10. Ext.NET 4.1.0 GridPanel数据分页

    针对大量数据在前端展示,需要进行分页显示,这里我使用的数据量为100万,数据存储在MongoDb中(也可以存储在本地文件或其它数据库中).最终显示效果如下: 步骤如下: 1.新建程序并配置,详见htt ...