原文链接: 原文日期: 2013年04月17日 翻译日期: 2014年06月29日 翻译人员: 1. 概述 本教程向您展示怎样通过 Maven 管理 Spring 的依赖关系.最新的Spring版本号能够在 中找到. 也能够訪问 . 2. 使用Maven管理主要的Spring依赖关系 Spring被设计为可高度模块化的 —— 使用Spring中的一部分,不应该也不须要引用还有一个不相关的部分. 比如, 使用主要的Spring Context能够不使用 Persistence或MVC相关的Spring库. 让我们从一个非常easy的Maven设置開始,这里仅仅使用 spring-context 依赖 :
spring-context 包定义了Spring注入(Injection)容器,并依赖非常少的Spring包: spring-core, spring-expression, spring-aop 和 spring-beans. 通过启用支持一些 Spring的核心技术增强了Spring容器: , 支持以及 . 注意,我们将spring-context依赖的范围指定为 runtime scope —— 这将确保在编译时没有不论什么依赖Spring特定api的部分. 对于一些底层开发的情况,能够将 runtime scope 从选定的Spring依赖项中移除(Maven 默认是compile),但对于简单的项目来说,并不须要在编码时对Spring 的整个框架进行调用. 还要注意,从Spring 3.2開始, 不须要定义CGLIB 依赖关系(如今升级到了CGLIB3.0)—— 它已经被又一次打包(如今全部 net.sf.cglib 包变成了 org.springframework.cglib包)并直接集成在 spring-core 这个 JAR包中(详情请參考 ). 3. Spring Persistence与Maven 如今让我们看看 Spring持久化依赖项 —— 主要是 spring-orm :3.2.8.RELEASE org.springframework spring-context ${org.springframework.version} runtime
它提供了Hibernate和JPA支持,如 HibernateTemplate 和 JpaTemplate —— 以及持久性相关的一些依赖关系: spring-jdbc 和 spring-tx. JDBC Data Access库定义了 以及 JdbcTemplate, 而 spring-tx 代表了非常灵活的 (Transaction Management Abstraction). 4. Spring MVC与Maven 要使用Spring Web和Servlet支持,须要在pom中加入两个依赖项, 当然,也须要上面所说的核心依赖:org.springframework spring-orm ${org.springframework.version}
spring-web 依赖包括Servlet和Portlet环境中经常使用的web特定工具,而 spring-webmvc 对Servlet环境提供了MVC支持. 由于 spring-webmvc 将 spring-web 作为一个依赖,所以在使用 spring-webmvc时不须要显式地定义 spring-web. 5. Spring Security与Maven 关于 Security Maven依赖的深入讨论请參考 . 6. Spring Test与Maven Spring Test框架能够通过下面依赖引入到项目中:org.springframework spring-web ${org.springframework.version} org.springframework spring-webmvc ${org.springframework.version}
从Spring 3.2開始, Spring MVC Test项目 作为一个独立的项目 ,而且已被列入 core Test框架,仅仅须要依赖 spring-test 就够了. 注意,那些仍然依赖Spring 3.1及下面版本号的较老的项目,独立的旧的Maven依赖 ,差点儿是一样的结果. 但不是在Maven Central仓库中,所以使用他们须要加入一个自己定义仓库到项目的pom中. 7. 使用里程碑版本号(Milestones) Spring的release版本号托管在Maven中央仓库中. 可是,假设一个项目须要使用里程碑版本号,那么须要在pom中加入Spring自己的Maven库:org.springframework spring-test ${spring.version} test
加入这个仓库以后,项目就能够定义例如以下的依赖关系:repository.springframework.maven.milestone Spring Framework Maven Milestone Repository http://repo.spring.io/milestone/
8. 使用Snapshots(快照) 和milestons版本号一样, Spring的快照版也托管在自己的仓库中:org.springframework spring-core 3.2.0.RC2
仅仅要在pom中启用了 SNAPSHOT 仓库,就能够引用下面的依赖关系:repository.springframework.maven.snapshot Spring Framework Maven Snapshot Repository http://repo.spring.io/snapshot/
当然, 4.x 也是一样的:org.springframework spring-core 3.3.0.BUILD-SNAPSHOT
9. 总结org.springframework spring-core 4.0.3.BUILD-SNAPSHOT
本文讨论了使用Maven管理 Spring的实际情况. 主要介绍的是Maven依赖,还有其它一些知识点. 这应该是在项目中使用Spring的一篇非常好的入门文章.