这几天在配置eclipse + maven的web开发环境,之前用intellij + jetty,发现intellij对maven的支持很好,只需很少的配置,就可以实现在项目中debug代码,但个人比较习惯使用eclipse,所以就去折腾eclipse的maven配置(假设你的机器上已经装好maven,m2eclipse插件,tomcat插件)。
环境:
eclipse: Juno tomcat: 7 maven: 3.1 jdk: 1.6 windows: 7
首先创建一个名为demo的父级maven project
创建成功之后,可以看到如下的目录结构
修改pom.xml,将里面的packaging改为pom,表示这是一个父级的maven工程。
然后在demo中新建一个名为demo-web 的maven module
选择demo-web的类型为webapp
新建成功的demo-web的结构如下
图中的JRE为1.5,可以在Build Path 中edit为1.6.
之后,将demo-web转换成一个dynamic web module.
右键项目名称--properties--project facets--convert to faceted form..
注意,这里的dynamic web 的版本选择为2.5,貌似3.0的需要jdk7的支持。
转换为web项目后的结构如下
此时,需要将src/main/webapp中的文件加入到打包结构中,不然会导致你的webapp目录无法访问,如果你的项目是spring项目的话,在启动tomcat的时候会提示 No Spring WebApplicationInitializer types detected on classpath。
右键demo-web--properties--Deployment assembly--add--Folder
添加webapp文件夹之后的效果如下(此时已将webcontent 在对话框中remove了)
此时,你的maven+eclipse已经配好了,直接把demo-web加入到就可以像普通的java工程那样可以调试代码了。
若你的maven工程在进行maven install的时候提示无法从repo中获取相应的jar的话,有可能是你的网络访问不到那些jar包,可以在${m2_home}/conf/settings.xml中配置mirror
<mirror> <id>UK</id> <name>UK Central</name> <url>http://uk.maven.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror>