版本
eclipse的版本是oxygen
maven的版本是3.0.5
jdk版本是1.8
spring版本是3.2.8
一 eclipse集成maven
oxygen版本的eclipse自带maven插件,如果没有maven插件可以安装m2e。由于目前不确定如何删除eclipse自带的maven插件而且我在使用的过程中还没发现什么不得了的缺陷。暂且用之。但是maven就不要用eclipse自带的了,而是要使用自己下载的maven,前提是你得配置好maven的环境变量。
打开window-preferences-maven,找到installations,如下:
点击上图中的add按钮,找到本地安装maven的目录即可,选择之后最终如上图显示(我使用的是apache-maven-3.0.5)。
之后点击maven目录下的user settings,如下图所示:
maven默认本地仓库地址是在用户目录下的.m2目录下,我这里使用的也是默认的本地仓库地址。user settings是指maven的settings.xml文件的地址。一般我们把settings.xml文件复制到.m2目录下,这样做的好处就是我们可以在.m2目录下的settings.xml中单独设置我们自己的maven配置。这在多用户的情况下是有用的。Global settings是指maven中自带的那个settings.xml,在这里面进行设置的话,会影响全局maven的配置,不建议在这里进行设置。当然,个人电脑不用区分这些。
此时可以新建一个maven项目看看是否成功了。也许你可能会遇到一个问题:eclipse is running in a jre,but a jdk is required。你可以修改eclipse安装目录下的eclipse.ini文件,添加vm配置指向jdk即可。(我打开自己的eclipse.ini没有发现这段配置,也许自带的maven插件没有这个问题,maven实战书中在安装m2e插件时指出了这个问题并提供了这个解决方案)
二 新建maven项目
file-new-[other]-maven project,进入如下页面
选择workspace location,next
这里我选择的是webapp,next
输入groupId artifactId即可,package默认jar,这里可以输入war,finish。
结果
到这里这个maven项目还不能用,还需要一些修改和设置。这个index.jsp报错是因为没有引入servlet api。可以待会在pom引入servlet api依赖,或者添加server runtime库也可以。我选择前者。
修改的主要问题在于缺少源文件目录以及package时输出的内容,最好,把jre system library也改成自己常用的。
首先增加源文件目录
,打开java build path,如下
删除带红叉的目录,然后add folder。添加其他的三个。结果如下
然后打开每一个新建的source folder,修改他们的output folder。如下
main目录下的output folder为target/classes,test目录下的output folder为target/test-classes。修改完毕之后,在order and export选项中调整一下位置。最终效果如下:
接下来修改package输出,右键项目-properties-deployment assembly,如下:
修改成如下:
apply and close之后,基本上就完成了,可以开始开发了。
三 springmvc简单实践
首先通过pom引入依赖的jar包
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>3.2.8.RELEASE</spring.version>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<mybatis.version>3.2.1</mybatis.version>
<junit.version>4.10</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<!-- javaee 支持 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
注意这里的servlet api依赖的范围是provided,也就是编译和测试时需要它,运行时不需要。
你也可以自己定义pom文件,maven提供了十分强大的依赖管理的功能,可以让你对项目的依赖有一个清晰的认识。
接下来就可以在spring上面开发了。
spring涵盖内容广泛,用起来又简单方便,寥寥几行代码不值得贴出来,待日后深究原理,再来探讨。