Maven+Spring+MVC结构中,jetty/tomcat是如何启动项目的[转]
针对maven配置的Spring+MVC项目,我们用Maven自带的jetty和tomcat插件进行调试,这很方便。但是调试时,这些插件所启动的web服务器,是如何来将我们的工程作为一个web项目启动并运行,可能并没有看上去那么简单。搞清楚它们启动时,是如何引用我们的项目,就是这的目的。
如果项目的名称是mvn_mvc,那么整个目录结构就如上图。
通常我们首先用mvn package生成上述的target目录中带红色部分。其等效执行 mvn compile test-compile test war:exploded war:war。也就是包含编译、测试和打包三步骤。接下来我们就可以使用mvn jetty:run或者mvn tomcat:run进行网站启动,测试运行了。此时会对应生成临时的jsp目录,jetty对应的目录名是work,tomcat对应的目录名是tomcat。
那么,项目对应的目录就是target/mvn_mvc目录吗?
非也非也!!!
真正的项目目录应该是:
- 本项目的java类来自于target/classes
- 本项目依赖的jar包来自于maven的pom配置(并没有实际的物理目录,为maven插件动态组织管理)
- 本项目依赖的配置文件和静态资源来自于src/main/webapp
综上所述,可以得到两个结论就是:
- 运行时,其实和target/mvn_mvc这个目录(打包项目目录)没有任何关系。所以如果运行过程中如果修改了这个目录的动态class和静态文件,就看不到效果。必须改src/main/java和src/main/webapp的才行。
- 另外,maven设计的项目思想是:src目录下是纯本项目的代码,没有任何临时文件和依赖jar包。这样也便于代码的管理:自己写的是自己的,别人的机器的都放到别处
如果程序调试出现异常,就按照此方法检查。
譬如,再经过再一次的去maven大爷的痛苦经历后,终于明白了以前碰到的一个问题:
在调试过程中,发现弹出这么一个框,标题是obsolete methods on the stack。现象就是:更新的代码在调试中不起作用。
最后找到原因:不知道什么时候,在src/main/webapp/WEB_INF中出现了classes和lib目录。这会导致始终以这个目录的classes为源代码;和调试的我们的真正源代码java不一致。删掉它们才解决。
Maven+Spring+MVC结构中,jetty/tomcat是如何启动项目的[转]的更多相关文章
- IntelliJ IDEA上创建maven Spring MVC项目
IntelliJ IDEA上创建Maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...
- maven Spring MVC项目
IntelliJ IDEA上创建maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下: 1.打开tomcat的安装根目录,找到Tom ...
- Tomcat设置默认启动项目
Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下: 1.打开tomcat的安装根目录,找 ...
- IDEA中配置Maven+spring MVC+tomcat
一:配置Maven安装教程如下: http://blog.csdn.net/qq_32588349/article/details/51461182 实际安装过程中,如果按照教程配置如下属性,最后创建 ...
- maven spring MVC 及tomcat
eclipse+tomcat8+springMVC环境搭建https://blog.csdn.net/code_fighter/article/details/79169058 Eclipse+Tom ...
- Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目
原文:Java web 项目搭建 Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring ...
- maven+spring mvc初尝试
只是一个可以运行的例子,俺们来看看. 目录结构: pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xml ...
- IDEA+Maven+Spring MVC HelloWorld示例
用Maven创建Web项目 选择webapp模板 创建成功后点Enable Auto-Import idea给我们创建出来的结构是这样的,这还不标准,需要自己修改. 在main文件夹下创建java文件 ...
随机推荐
- 连接db2数据库时NumberFormatException异常的解决方式
连接db2数据库时报异常:java.lang.NumberFormatException: For input string: "A" from a DB2 JDBC(JCC) j ...
- 使用python远程登录
最近要使用python做一个在web上管理交换机的程序,需要远程登录,就查了点资料,由于还没有搞到交换机,就先用自己的机器测试一下. 首先python的标准库中包含telnet,用起来也很方便,查看一 ...
- proxy server 代理服务器
有时候,我觉得自己需要去搞明白.搞清楚一个概念,帮我打通一下自己的知识体系,或者说,尝试联络起来. 1. 简介 突破自身IP限制,访问国外站点. 访问单位或者团体内部资源. 突破中国电信的IP封锁. ...
- 以前用过Extjs技术的开发人员在学习Extjs4时需要注意的问题
以前学习过Extjs的同学,在学习Extjs4的时候需要注意几个关键改变: 1.Extjs4的新的类系统. 2.Extjs4中MVC思路 3.Extjs4中的新的命名规范(结合新的MV ...
- 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径
2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 682 Solved: 384[Submit][Stat ...
- 二分图匹配(KM算法)n^3 分类: ACM TYPE 2014-10-01 21:46 98人阅读 评论(0) 收藏
#include <iostream> #include<cstring> #include<cstdio> #include<cmath> const ...
- SQL TRY CATCH
begin try select 1/0end trybegin catch select error_number() as 'number', error_line() as 'line', er ...
- NGUI 自定义 Drag Item Script
最近要实现一个NGUI效果. 查看了一下,NGUI有个自带 UIDragDropItem.cs 的组件进过修改后即可以实现. 下面贴上UI布局,代码: mDragDropItem.cs using U ...
- shell脚本 -d 是目录文件,那么-e,-f分别是什么?还有"! -e"这又是什么意思呢?
-e filename 如果 filename存在,则为真-d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真-L filen ...
- MVC 中 Razor 无限分类的展示
在MVC的Razor视图展示无级分类的办法,在网上看了很多资料,大多搞得很高大上.可能本人水平有限,实在是不会用. 那我就用最简单爆力的办法来做. Model: public class NewsCa ...