之前开发用过jetty来调试maven项目,不过那时也有点浑浑噩噩的,就是使用而已,业余时间都奉献给了游戏。最近在鼓捣maven,就记录一下最近搭建Eclipse中使用Tomcat调试maven项目的过程,之后忘记或者中间有什么问题时能够查到。html
废话很少说,下面开始搭建:web
1. 安装Maven(配置Maven环境变量+Eclipse中的Maven插件)浏览器
这步就很少说了,网上一搜一大把,要说明的只有一点,第一次配好Maven插件,必定要更新一次远程库的索引,这样添加依赖的时候就不会出现搜不到那个jar包的状况了(固然要先启用远程库的index,否则也搜不到jar包的)tomcat
2. 新建Maven项目、配置服务器
新建了Maven项目后,属性->Project Facets->"convert to faceted form...",在随后出现的Project Facet中勾选以下2项,注意选择后面的version:app
选择好了,肯定,在次打开 项目->属性,能够看到多了一个Deployment Assembly选项,打开能够看到这里配置的是文件夹和发布文件夹的对应关系eclipse
因为maven打包时默认从src/main/webapp目录下面取web.xml文件,咱们还要手动在下面创建一个这样的文件。ssh
3. 配置调试的服务器(Apathc Tomcat)webapp
以下图所示,Eclipse中新建一个Tomcat容器:maven
3. 运行Maven项目
通过上面的配置,是否是就能够运行咱们的maven项目了呢??固然能够。
选择了上图所示的“Run on Server”后能够运行咱们的Maven项目了。
4. 剩余问题
(1)、 咱们浏览器输入“http://localhost:8080/ssh2/index.html”返回404??
不要急,能够到工做空间的目录.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps下面看到有个咱们的maven项目名称的文件夹,这是咱们调试时自动发布的目录,能够看到下面并无咱们添加的页面,神马状况??
这是咱们没有配置src/main/webapp的发布目录,因此调试时也没有把下面的html等内容发布
解决:
项目 —> 属性 -> Deployment Assembly -> Add -> folder -> 选择src/main/webapp
这一步就是配置webapp目录要发布到项目的根目录下,咱们再看到.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\ssh2目录下面有自动发布的html文件
刷新浏览器页面,OK页面出来了!!!
(2)、是否是这样就OK了??答案是否认的。
咱们在pom.xml中添加了那些依赖的jar后,一旦在代码中应用。当咱们本地调试时,会报ClassNotFound错误,这是为何??
由于Tomcat不懂这些配置,你必须把Maven Dependencies中的jar与发布目录配置好:
项目 —> 属性 -> Deployment Assembly -> Add -> Java Build Path Entries -> 选择Maven Dependencies -> Finish -> OK
这一步就是配置Maven依赖包发布目录,这样调试时会自动把那些jar发布到指定目录下,tomcat也能找到那些jar了。