我为什么要用到Maven?
- 为了解决java各个框架的依赖问题。不用再到处找框架,找jar包下载。现在越来越多的框架已经默认是提供Maven的地址而不是提供jar下载了,比如 spring framework
- 越来越多的paas支持直接git或者svn来自动编译运行Maven工程了。注
新建工程
-
下载maven并解压,在Intellij IDEA中配置好其位置。
-
新建项目,选择maven,暂时先不选择archetype,从空工程开始吧。
-
GroupId和ArtifactId我理解成类似于包和类名。
-
按部就班的新建完一个工程后大概就是这样的了。IDE会有一个提示在右上角,开启自动导入即可。
-
完成之后,静待程序自动导入所有的包,工程结构是这样的。
-
添加web framework支持,在工程文件夹上点击右键-Add Framework Support
这个时候不用勾选其他框架支持,因为勾选其他支持是需要添加jar包的,这样使用maven的作用就不明显了(对于我来说)。
7. 静待之后,整个工程结构就是这样的了。
各个文件夹的作用
web-存放网页资源
src/main/java-存放java代码
src/main/resources-存放各类配置文件,比如各个框架,甚至hbm.xml也要放在这个文件夹下
test-测试单元(目前还没使用到)
配置本机测试环境
这是一个较为繁琐的办法
现在工程是无法在本机运行的,需要Run-Edit Configurations-添加一个tomcat服务器
这个时候就可以运行Hello world了。
添加框架支持
先使用struts框架吧,在pom.xml中添加好依赖。
<dependencies>
<!--struts-->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.16.3</version>
</dependency>
</dependencies>
在web.xml里面配置好filter
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
再次运行,Tomcat居然报错了。
十一月 10, 2014 12:04:38 上午 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
等等,maven不是有自动导入依赖吗?这怎么还是报找不到类?原因其实很简单,maven的依赖,只有maven的编译(运行)指令能找到这些包。而本机Tomcat的编译运行和maven是两套不同的系统。要解决这个问题,也挺简单的。
File-Project Structure-Artifacts
把右侧的jar包全部拖到左侧的即可。
这样就算完成了,再次tomcat运行就不会出错了。这个办法有个弊病就是:每次添加完依赖,都得在工程结构里面添加新的包。因为没有使用maven的编译和运行 下一步就是使用maven来打包了。(未完)