Maven_eclipse下配置Maven项目
环境
eclipse:Kepler
tomcat:apache-tomcat-6.0.26
maven:apache-maven-3.2.1
创建工程
用maven插件构建项目框架
在Eclipse->New中选择maven Project型。如下图:
在选完路径之后,我们选择构建类型,在Artifact Id中选择maven-archetype-webapp,如下图:
接下来,填写工程的Group Id,Artifact Id,如下图:
项目已经成型了,样子如下图(若这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了):
配置maven项目
1.添加Source Folder
这个不是简单的Floder,这些文件夹是会参与编译的。增加src/main/java,src/test/resources,src/test/java目录。让目录变成标准的maven结构。
建立好一个Maven项目后,如果Java Resources资源文件下没有src/main/java文件夹,并且在手动创建这个文件时提示“已存在文件”。这说明,在这个项目配置中已经有了src/main/java这个文件夹
下面是解决方法 ,打开项目的classpath文件
会出现path属性为:src/main/java的classpathentry节点,这时删除我们需要新建的的节点就可以
2.工程的字符集改为UTF-8;
3.更改classPath
Properties->Java Build Path->Source下面应该有4个文件夹
src/main/java, src/main/resources, src/test/java, src/test/resources.
双击每个文件夹的Output folder属性,选择路径
src/main/java,src/main/resources,输入target/classes;
src/test/java,src/test/resources,输入target/test-classes;
选上Allow output folders for source folders.
更改文件夹显示的顺序:点击Order and Export.
更改JDK版本:在Libraries双击JRE System Library进行修改
这些都完成之后,工程目录应该是如下的样子:
4.把项目变成Dynamic Web项目
此时,我们的工程还不是标准的web工程,可以在eclipse中增加web工程的特性,选择工程的Properties,选Project Facets,这里,我们选择Dynamic Web Module,版本选择2.3(当然可以选择较高版本,我的暂时不支持)。如下图:
可以看到下方中有tomcat,如果没有,则点击下面的new,新建一个,新建后选中复选框,然后apply
5.设置应用程序集(Web Deployment Assembly)
右键项目Properties->Deployment Assembly
删除test的两项,因为test是测试使用,并不需要部署.
设置将Maven的jar包发布到lib下.右键项目Properties->Deployment Assembly->Add -> Java Build Path Entries -> Maven Dependencies -> Finish
完成后有:
/src/main/webapp /
/src/main/java /WEB-INF/classes
/src/main/resources /WEB-INF/classes
Maven Dependencies/WEB-INF/lib
6.向Maven中加入包
7.如果找不到HttpServletRequest 右键项目,Java Build Path->Libraries->Add Library->Server Runtime->Tomcat
8.增添jstl
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
发布项目
部署:mvn tomcat:deploy
撤销部署:mvn tomcat:undeploy
启动web应用:mvn tomcat:start
停止web应用:mvn tomcat:stop
重新部署:mvn tomcat:redeploy
部署展开的war文件:mvn war:exploded tomcat:exploded