(转)利用eclipse构建和部署maven工程
本文转自http://ll-feng.iteye.com/blog/1155776利用eclipse构建和部署maven工程?一、环境?
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工程?
?
执行mvn eclipse:eclipse?
工程目录增加了一些目录?
?
2、在eclipse中import maven工程?
如果用m2eclipse生成的Maven工程则省了上面两步?
3、让maven工程成为eclipse支持的dynamic web projtct 修改.project文件或是?
4、在eclipse中修改project fact选择java和dynamic web project两项,?
?
之后应可以将工程加入tomcat部署,但会在工程中自动加入webconent目录,并默认设置将webcontent下的内容发布到/下,?
?
?
需要修改为src/main/webapp目录,有两种办法。?
一是在工程目录中的.setting下修改org.eclipse.wst.common.component,修改成?
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>后,将webconent目录删除?
?
到这里eclipse已经从maven手中接过了web工程的管理工作了。?
二在eclipse中部署web应用到容器中?
6、将web工程加入到tomcat的发布列表中。?
?
如果添加不了,可能是sevlet容器的版本太高了。修改:?
?
如果启动后会发现报java.lang.ClassNotFoundException异常。这是因为maven的依赖包并未一同发布到tomcat中?
还要设置部署?
eclipse中右键工程,选择maven-->enable dependency management?
?
在工程属性中找到deployment assembly配置项--》add-->Referenced Projects classpath entries-->next?
?
在出现的窗口中找到要配置工程下面有一个Maven dependencies项,勾上?
mvn12.png?
mvn13.png?
即使这样,我也遇到jar包不能发布到lib目录的怪事。后来打开工程的.classespath发现有一项是这样的?
在工程属性的java build paths配置项中 order and export->将mavent dependencies项?
mvn14.png?
<classpathentry exported="true" kind="con" path="org.maven.ide.eclipse.MAVEN2_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工程?
?执行mvn eclipse:eclipse?
工程目录增加了一些目录?
?2、在eclipse中import maven工程?
如果用m2eclipse生成的Maven工程则省了上面两步?
3、让maven工程成为eclipse支持的dynamic web projtct 修改.project文件或是?
4、在eclipse中修改project fact选择java和dynamic web project两项,?
?之后应可以将工程加入tomcat部署,但会在工程中自动加入webconent目录,并默认设置将webcontent下的内容发布到/下,?
?
?需要修改为src/main/webapp目录,有两种办法。?
一是在工程目录中的.setting下修改org.eclipse.wst.common.component,修改成?
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>后,将webconent目录删除?
?到这里eclipse已经从maven手中接过了web工程的管理工作了。?
二在eclipse中部署web应用到容器中?
6、将web工程加入到tomcat的发布列表中。?
?如果添加不了,可能是sevlet容器的版本太高了。修改:?
?如果启动后会发现报java.lang.ClassNotFoundException异常。这是因为maven的依赖包并未一同发布到tomcat中?
还要设置部署?
eclipse中右键工程,选择maven-->enable dependency management?
?在工程属性中找到deployment assembly配置项--》add-->Referenced Projects classpath entries-->next?
?在出现的窗口中找到要配置工程下面有一个Maven dependencies项,勾上?
mvn12.png?
mvn13.png?即使这样,我也遇到jar包不能发布到lib目录的怪事。后来打开工程的.classespath发现有一项是这样的?
在工程属性的java build paths配置项中 order and export->将mavent dependencies项?
mvn14.png?<classpathentry exported="true" kind="con" path="org.maven.ide.eclipse.MAVEN2_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了。否则上面的工作还要再做一遍。