利用eclipse构建和部署maven工程
2013-12-06 16:53
197 查看
一、环境
OS:win7
jdk:1.6
maven:3
eclipse:jee3.6+m2eclipse
tomcat:6
二、创建由maven构建的web工程
1、创建maven工程
mvn archetype:generate
在出现的archetype列表中可选择一个合适的编号,例如
197: remote -> struts2-archetype-blank (-)
之后将会在工作空间出现maven工程
![](http://dl.iteye.com/upload/attachment/541680/86f8062a-661b-3a87-82a1-14b9c4e28bea.png)
执行mvn eclipse:eclipse
工程目录增加了一些目录
![](http://dl.iteye.com/upload/attachment/541684/620be6ab-d1cf-3a01-9944-f9dc06ce8707.png)
2、在eclipse中import maven工程
如果用m2eclipse生成的Maven工程则省了上面两步
3、让maven工程成为eclipse支持的dynamic web projtct 修改.project文件或是
4、在eclipse中修改project fact选择java和dynamic web project两项,
![](http://dl.iteye.com/upload/attachment/541686/aba47dcb-a0fe-3982-b9d6-772fc7be4815.png)
之后应可以将工程加入tomcat部署,但会在工程中自动加入webconent目录,并默认设置将webcontent下的内容发布到/下,
![](http://dl.iteye.com/upload/attachment/541688/39092bf7-e801-3644-bdf1-23345d9beaee.png)
![](http://dl.iteye.com/upload/attachment/541690/3c090b1e-3ffc-3f59-afea-bcc7825fb561.png)
需要修改为src/main/webapp目录,有两种办法。
一是在工程目录中的.setting下修改org.eclipse.wst.common.component,修改成
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>后,将webconent目录删除
![](http://dl.iteye.com/upload/attachment/541692/4e1a093d-2ca7-3a86-bedf-bb6566cc2df0.png)
到这里eclipse已经从maven手中接过了web工程的管理工作了。
二在eclipse中部署web应用到容器中
6、将web工程加入到tomcat的发布列表中。
![](http://dl.iteye.com/upload/attachment/541705/5f8dcc36-aa0c-33a4-98a3-074266a40f97.png)
如果添加不了,可能是sevlet容器的版本太高了。修改:
![](http://dl.iteye.com/upload/attachment/541703/db363721-d1fc-306c-8ef8-89399c1643f5.png)
如果启动后会发现报java.lang.ClassNotFoundException异常。这是因为maven的依赖包并未一同发布到tomcat中
还要设置部署
eclipse中右键工程,选择maven-->enable dependency management
![](http://dl.iteye.com/upload/attachment/541723/6013fb81-d882-3d00-9a37-af07d986464a.png)
在工程属性中找到deployment assembly配置项--》add-->Referenced Projects classpath entries-->next
![](http://dl.iteye.com/upload/attachment/541713/513f8b0d-da8c-3ca9-bfdd-2df1a47829ed.png)
在出现的窗口中找到要配置工程下面有一个Maven dependencies项,勾上
![](http://dl.iteye.com/upload/attachment/541725/dcbacd8a-0397-3f69-8062-27d3ff15e5bf.png)
mvn12.png
![](http://dl.iteye.com/upload/attachment/541729/0b179527-6028-3ed3-9b91-f87d1bcc367f.png)
mvn13.png
即使这样,我也遇到jar包不能发布到lib目录的怪事。后来打开工程的.classespath发现有一项是这样的
在工程属性的java build paths配置项中 order and export->将mavent dependencies项
![](http://dl.iteye.com/upload/attachment/541731/dc92ce5e-8275-357f-bc8b-5e791f4dc0ae.png)
mvn14.png
<classpathentry exported="true" kind="con" path="org.maven.ide.eclipse.M***EN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
需要将value="../"设置成“/WEB-INF/lib”我想这是一个bug.这样就ok了
注意事项:
一旦eclipse的部署环境调试好后,尽量不要再用mvn eclipse:eclipse了。否则上面的工作还要再做一遍。
OS:win7
jdk:1.6
maven:3
eclipse:jee3.6+m2eclipse
tomcat:6
二、创建由maven构建的web工程
1、创建maven工程
mvn archetype:generate
在出现的archetype列表中可选择一个合适的编号,例如
197: remote -> struts2-archetype-blank (-)
之后将会在工作空间出现maven工程
![](http://dl.iteye.com/upload/attachment/541680/86f8062a-661b-3a87-82a1-14b9c4e28bea.png)
执行mvn eclipse:eclipse
工程目录增加了一些目录
![](http://dl.iteye.com/upload/attachment/541684/620be6ab-d1cf-3a01-9944-f9dc06ce8707.png)
2、在eclipse中import maven工程
如果用m2eclipse生成的Maven工程则省了上面两步
3、让maven工程成为eclipse支持的dynamic web projtct 修改.project文件或是
4、在eclipse中修改project fact选择java和dynamic web project两项,
![](http://dl.iteye.com/upload/attachment/541686/aba47dcb-a0fe-3982-b9d6-772fc7be4815.png)
之后应可以将工程加入tomcat部署,但会在工程中自动加入webconent目录,并默认设置将webcontent下的内容发布到/下,
![](http://dl.iteye.com/upload/attachment/541688/39092bf7-e801-3644-bdf1-23345d9beaee.png)
![](http://dl.iteye.com/upload/attachment/541690/3c090b1e-3ffc-3f59-afea-bcc7825fb561.png)
需要修改为src/main/webapp目录,有两种办法。
一是在工程目录中的.setting下修改org.eclipse.wst.common.component,修改成
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>后,将webconent目录删除
![](http://dl.iteye.com/upload/attachment/541692/4e1a093d-2ca7-3a86-bedf-bb6566cc2df0.png)
到这里eclipse已经从maven手中接过了web工程的管理工作了。
二在eclipse中部署web应用到容器中
6、将web工程加入到tomcat的发布列表中。
![](http://dl.iteye.com/upload/attachment/541705/5f8dcc36-aa0c-33a4-98a3-074266a40f97.png)
如果添加不了,可能是sevlet容器的版本太高了。修改:
![](http://dl.iteye.com/upload/attachment/541703/db363721-d1fc-306c-8ef8-89399c1643f5.png)
如果启动后会发现报java.lang.ClassNotFoundException异常。这是因为maven的依赖包并未一同发布到tomcat中
还要设置部署
eclipse中右键工程,选择maven-->enable dependency management
![](http://dl.iteye.com/upload/attachment/541723/6013fb81-d882-3d00-9a37-af07d986464a.png)
在工程属性中找到deployment assembly配置项--》add-->Referenced Projects classpath entries-->next
![](http://dl.iteye.com/upload/attachment/541713/513f8b0d-da8c-3ca9-bfdd-2df1a47829ed.png)
在出现的窗口中找到要配置工程下面有一个Maven dependencies项,勾上
![](http://dl.iteye.com/upload/attachment/541725/dcbacd8a-0397-3f69-8062-27d3ff15e5bf.png)
mvn12.png
![](http://dl.iteye.com/upload/attachment/541729/0b179527-6028-3ed3-9b91-f87d1bcc367f.png)
mvn13.png
即使这样,我也遇到jar包不能发布到lib目录的怪事。后来打开工程的.classespath发现有一项是这样的
在工程属性的java build paths配置项中 order and export->将mavent dependencies项
![](http://dl.iteye.com/upload/attachment/541731/dc92ce5e-8275-357f-bc8b-5e791f4dc0ae.png)
mvn14.png
<classpathentry exported="true" kind="con" path="org.maven.ide.eclipse.M***EN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
需要将value="../"设置成“/WEB-INF/lib”我想这是一个bug.这样就ok了
注意事项:
一旦eclipse的部署环境调试好后,尽量不要再用mvn eclipse:eclipse了。否则上面的工作还要再做一遍。
相关文章推荐
- 为了后面自动化部署,需要整理公司项目的maven依赖关系,eclipse下maven组件的安装以及用eclipse构建maven多模块工程(即有父子依赖关系的工程)遇到一个class not fond
- Eclipse·Maven·构建SpringMVC简单工程-3
- 利用Eclipse中的Maven构建Web项目(一)
- 利用Eclipse中的Maven构建Web项目报错(二)
- 在windows xp下利用Eclipse--maven构建Mahout
- Maven利用Profile构建不同环境的部署包
- 在eclipse下直接部署maven工程缺少jar包问题
- Eclipse+Maven构建web项目及部署时Maven lib依赖问题的解决
- Eclipse构建Maven工程案例
- Maven利用Profile构建不同环境的部署包
- maven学习(下)利用Profile构建不同环境的部署包
- 利用Eclipse中的Maven构建Web项目(二)
- 利用Eclipse中的Maven构建Web项目报错(二)
- eclipse中利用Maven逆向工程生成PO类以及mapper(mybatis)
- Springsource tool suite(简称STS)(或Eclipse)将maven工程部署到Tomcat
- MAVEN利用Profile构建不同环境的部署包
- 使用Eclipse创建和部署maven工程
- Eclipse+maven 构建JEE工程(二) 创建webapp
- org.apache.tomcat.maven__利用eclipse部署到tomcat
- Eclipse利用Maven的插件部署web项目到远程tomcat服务器