使用Maven管理Spring[转]
2014-12-16 14:00
197 查看
原文链接:SpringwithMaven
原文日期:2013年04月17日
翻译日期:2014年06月29日
翻译人员:铁锚
翻译原文连接:/article/2584958.html
1.概述
本教程向您展示如何通过Maven管理Spring的依赖关系.最新的Spring版本可以在MavenCentral仓库中找到.也可以访问mvnrepository:org.springframework.
2.使用Maven管理基本的Spring依赖关系
Spring被设计为可高度模块化的——使用Spring中的一部分,不应该也不需要引用另一个不相关的部分.例如,使用基本的SpringContext可以不使用Persistence或MVC相关的Spring库.让我们从一个非常简单的Maven设置开始,这里只使用spring-context依赖:
[html]viewplaincopyprint?
<properties>
<org.springframework.version>3.2.8.RELEASE</org.springframework.version>
<!--<org.springframework.version>4.0.2.RELEASE</org.springframework.version>-->
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
<scope>runtime</scope>
</dependency>
spring-context包定义了Spring注入(Injection)容器,并依赖很少的Spring包:spring-core,spring-expression,spring-aop和spring-beans.通过启用支持一些Spring的核心技术增强了Spring容器:Spring表达式语言(SpEL),面向切面编程支持以及JavaBeans机制.注意,我们将spring-context依赖的范围指定为runtimescope——这将确保在编译时没有任何依赖Spring特定api的部分.对于一些底层开发的情况,可以将runtimescope从选定的Spring依赖项中移除(Maven默认是compile),但对于简单的项目来说,并不需要在编码时对Spring的整个框架进行调用.还要注意,从Spring3.2开始,不需要定义CGLIB依赖关系(现在升级到了CGLIB3.0)——它已经被重新打包(现在所有net.sf.cglib包变成了org.springframework.cglib包)并直接集成在spring-core这个JAR包中(详情请参考JIRA计划文档).
3.SpringPersistence与Maven
现在让我们看看Spring持久化依赖项——主要是spring-orm:
[html]viewplaincopyprint?
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
它提供了Hibernate和JPA支持,如HibernateTemplate和JpaTemplate——以及持久性相关的一些依赖关系:spring-jdbc和spring-tx.JDBCDataAccess库定义了SpringJDBC支持以及JdbcTemplate,而spring-tx代表了非常灵活的事务管理的抽象(TransactionManagementAbstraction).
4.SpringMVC与Maven
要使用SpringWeb和Servlet支持,需要在pom中添加两个依赖项,当然,也需要上面所说的核心依赖:
[html]viewplaincopyprint?
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
spring-web依赖包含Servlet和Portlet环境中常用的web特定工具,而spring-webmvc对Servlet环境提供了MVC支持.因为spring-webmvc将spring-web作为一个依赖,所以在使用spring-webmvc时不需要显式地定义spring-web.
5.SpringSecurity与Maven
关于SecurityMaven依赖的深入讨论请参考SpringSecurity3.2.x与Spring4.0.x的Maven依赖管理.
6.SpringTest与Maven
SpringTest框架可以通过以下依赖引入到项目中:
[html]viewplaincopyprint?
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
从Spring3.2开始,SpringMVCTest项目作为一个独立的项目在github上提供下载,并且已被列入coreTest框架,只需要依赖spring-test就够了.注意,那些仍然依赖Spring3.1及以下版本的较老的项目,独立的旧的Maven依赖仍然存在并可继续使用,几乎是一样的结果.但不是在MavenCentral仓库中,所以使用他们需要添加一个自定义仓库到项目的pom中.
7.使用里程碑版本(Milestones)
Spring的release版本托管在Maven中央仓库中.但是,如果一个项目需要使用里程碑版本,那么需要在pom中添加Spring自己的Maven库:
[html]viewplaincopyprint?
<repositories>
<repository>
<id>repository.springframework.maven.milestone</id>
<name>SpringFrameworkMavenMilestoneRepository</name>
<url>http://repo.spring.io/milestone/</url>
</repository>
</repositories>
添加这个仓库以后,项目就可以定义如下的依赖关系:
[html]viewplaincopyprint?
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.0.RC2</version>
</dependency>
8.使用Snapshots(快照)
和milestons版本一样,Spring的快照版也托管在自己的仓库中:
[html]viewplaincopyprint?
<repositories>
<repository>
<id>repository.springframework.maven.snapshot</id>
<name>SpringFrameworkMavenSnapshotRepository</name>
<url>http://repo.spring.io/snapshot/</url>
</repository>
</repositories>
只要在pom中启用了SNAPSHOT仓库,就可以引用以下的依赖关系:
[html]viewplaincopyprint?
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.3.0.BUILD-SNAPSHOT</version>
</dependency>
当然,4.x也是一样的:
[html]viewplaincopyprint?
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.3.BUILD-SNAPSHOT</version>
</dependency>
9.总结
本文讨论了使用Maven管理Spring的实际情况.主要介绍的是Maven依赖,还有其他一些知识点.这应该是在项目中使用Spring的一篇很好的入门文章.
原文日期:2013年04月17日
翻译日期:2014年06月29日
翻译人员:
翻译原文连接:
1.概述
本教程向您展示如何通过Maven管理Spring的依赖关系.最新的Spring版本可以在
2.使用Maven管理基本的Spring依赖关系
Spring被设计为可高度模块化的——使用Spring中的一部分,不应该也不需要引用另一个不相关的部分.例如,使用基本的SpringContext可以不使用Persistence或MVC相关的Spring库.让我们从一个非常简单的Maven设置开始,这里只使用spring-context依赖:
[html]
<properties>
<org.springframework.version>3.2.8.RELEASE</org.springframework.version>
<!--<org.springframework.version>4.0.2.RELEASE</org.springframework.version>-->
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
<scope>runtime</scope>
</dependency>
spring-context包定义了Spring注入(Injection)容器,并依赖很少的Spring包:spring-core,spring-expression,spring-aop和spring-beans.通过启用支持一些Spring的核心技术增强了Spring容器:
3.SpringPersistence与Maven
现在让我们看看Spring持久化依赖项——主要是spring-orm:
[html]
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
它提供了Hibernate和JPA支持,如HibernateTemplate和JpaTemplate——以及持久性相关的一些依赖关系:spring-jdbc和spring-tx.JDBCDataAccess库定义了
4.SpringMVC与Maven
要使用SpringWeb和Servlet支持,需要在pom中添加两个依赖项,当然,也需要上面所说的核心依赖:
[html]
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
spring-web依赖包含Servlet和Portlet环境中常用的web特定工具,而spring-webmvc对Servlet环境提供了MVC支持.因为spring-webmvc将spring-web作为一个依赖,所以在使用spring-webmvc时不需要显式地定义spring-web.
5.SpringSecurity与Maven
关于SecurityMaven依赖的深入讨论请参考
6.SpringTest与Maven
SpringTest框架可以通过以下依赖引入到项目中:
[html]
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
从Spring3.2开始,SpringMVCTest项目作为一个独立的项目
7.使用里程碑版本(Milestones)
Spring的release版本托管在Maven中央仓库中.但是,如果一个项目需要使用里程碑版本,那么需要在pom中添加Spring自己的Maven库:
[html]
<repositories>
<repository>
<id>repository.springframework.maven.milestone</id>
<name>SpringFrameworkMavenMilestoneRepository</name>
<url>http://repo.spring.io/milestone/</url>
</repository>
</repositories>
添加这个仓库以后,项目就可以定义如下的依赖关系:
[html]
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.0.RC2</version>
</dependency>
8.使用Snapshots(快照)
和milestons版本一样,Spring的快照版也托管在自己的仓库中:
[html]
<repositories>
<repository>
<id>repository.springframework.maven.snapshot</id>
<name>SpringFrameworkMavenSnapshotRepository</name>
<url>http://repo.spring.io/snapshot/</url>
</repository>
</repositories>
只要在pom中启用了SNAPSHOT仓库,就可以引用以下的依赖关系:
[html]
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.3.0.BUILD-SNAPSHOT</version>
</dependency>
当然,4.x也是一样的:
[html]
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.3.BUILD-SNAPSHOT</version>
</dependency>
9.总结
本文讨论了使用Maven管理Spring的实际情况.主要介绍的是Maven依赖,还有其他一些知识点.这应该是在项目中使用Spring的一篇很好的入门文章.
相关文章推荐
- 使用Maven管理Spring
- Spring入门,使用Maven进行管理
- maven下多环境配置文件、属性管理 & Spring使用@value初始化字段值
- 使用Maven管理项目-----创建 Struts2,Spring,Hibernate项目
- 使用Maven管理Spring
- 使用Maven管理Spring
- Intellij idea下使用Maven管理的Spring+SpringMVC+Mybatis的整合
- 使用maven管理spring3.1.2 及spring mvc ,hibernate4.3.6集成开发的依赖环境
- 使用spring官方文档常见Maven管理的spring项目
- 使用Maven管理Spring (引用包介绍)
- 使用Maven管理Spring、Spring MVC、Hibernate的Library
- 使用maven管理依赖,spring版本冲突解决 java.lang.NoSuchMethodError: org.springframework.core.GenericTypeResolver.r
- 使用Maven管理Spring
- 使用Maven管理Spring
- 使用Maven管理Spring
- 使用Junit4对由Maven管理的Spring项目进行单元测试
- 使用Maven管理Spring
- 使用Maven管理Spring
- 使用Maven管理spring环境的profile定义
- 使用Maven管理Spring