本文修改于2017-03-03,由于OSChina的Maven仓库关闭,改为用Aliyun的仓库,因此将文中的OSChina改为Aliyun
1.从 Maven 下载依赖包
(1)修改Eclipse中Maven的配置目录
Window --> Preference --> Maven --> Installations --> Add --> External ,在Installation name输入Maven的版本号(如:apache-maven-3.3.9),并在Directory 选择Maven的解压目录(如:D:\Program Files\apache-maven-3.3.9-bin\apache-maven-3.3.9)
(2)由于某些原因,国内访问Maven中心仓库的速度太慢,建议从开源中国的Maven库同步,镜像地址:http://maven.aliyun.com/nexus/#view-repositories;public~browsestorage
或者直接去开源中国下载配置文件:http://maven.oschina.net/help.html
完整镜像配置:
<span style="font-size:18px;"><mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>NexusAliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror></span>
(3)配置Eclipse 中Maven的User Settings
Window --> Preference --> Maven --> User Settings,配置为刚刚下载的settings.xml,并 UpdateSettings,配置完后,重启Eclipse。
(4)新建Spring MVC 项目时,Spring的某些最新版本的包没有同步到Maven仓库,因此只能再建一个镜像地址从Spring的仓库中同步这些包,Spring仓库的镜像地址:http://repo.spring.io/milestone/
完整镜像配置:
<span style="font-size:18px;"><mirror>
<id>spring-milestone</id>
<mirrorOf>*</mirrorOf>
<name>spring-milestone</name>
<url>http://repo.spring.io/milestone/</url>
</mirror></span>
(5)修改完镜像地址后,必须先更改本地仓库路径,配置如下:
<span style="font-size:18px;"><localRepository>D:/ProgramData/Maven</localRepository></span>
(6)然后选择 Window --> Show View --> Maven Repositories ,出现 Maven Repositories 视图,选择 Global Repositories ,分别右击spring-milestone 和 nexus-osc 选择 Rebuild Index,即可从服务器同步资源索引到本地
提醒一下:此过程需要耐心,因为从 Aliyun 同步的索引大概有 1G,从 spring-milestone 同步的索引大概有10M ,但由于墙的原因,网速较慢,花费时间很长,所以要很耐心,很耐心。
2.配置Maven依赖管理的pom.xml文件
(1)从Spring仓库下载的依赖包:
<span style="font-size:18px;"> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency></span>
此依赖文件是Spring仓库的pom文件,Maven又根据此pom文件到Spring仓库下载相应的jar包
(2)出现此错误时,
java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/,在pom.xml文件下添加此依赖:
<span style="font-size:18px;"> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency></span>
(3)pom.xml完整配置如下:
<span style="font-size:18px;"><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>imooc-arthur</groupId>
<artifactId>spring-mvc-study_2</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<commons-lang.version>2.6</commons-lang.version>
<slf4j.version>1.7.6</slf4j.version>
<spring.version>4.1.3.RELEASE</spring.version>
<jackson.version>2.5.4</jackson.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons-lang.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project></span>