maven 父maven

1.概述

本教程将讨论如何使用Maven设置Spring,并介绍使用Spring依赖项的特定用例。 最新的Spring版本可以在Maven Central中找到。

2.基本的Maven Spring依赖关系

Spring的设计具有模块化和灵活性–基本的Spring容器可用于多种情况,而无需包含框架必须提供的任何更高级的功能。 一个非常基本的Maven设置将只需要使用spring-context依赖项:

<properties><org.springframework.version>3.2.4.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 Container,并具有少量依赖关系: spring-corespring-expressionspring-aopspring-beans 。 这些通过启用对某些Spring核心技术的支持来增强容器:Core Spring实用程序, Spring Expression Language (SpEL), Aspect Oriented Programming支持和JavaBeans机制 。

请注意,在定义spring-context依赖项时使用了运行时作用域 -这将确保在任何特定于Spring的API上都没有编译时依赖项。 对于更高级的用例,可以从某些选定的Spring依赖项中删除运行时范围,但是对于更简单的项目, 无需针对Spring进行编译即可充分利用框架。

还要注意,从Spring 3.2开始,已经重新打包了CGLIB依赖关系 (现在已升级到CGLIB 3.0)(所有net.sf.cglib软件包现在都是org.springframework.cglib),并直接内联到spring-core JAR中(请参见)。 JIRA了解更多详细信息),因此无需明确定义它。

3. Maven的Spring持久性

除了上面显示的核心Spring依赖项之外,主要的Spring持久性依赖项是spring-orm

<dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${org.springframework.version}</version>
</dependency>

这带来了Hibernate和JPA支持(例如HibernateTemplateJpaTemplate )以及一些与持久性相关的其他依赖项: spring-jdbcspring-tx 。 JDBC数据访问库定义了Spring JDBC支持以及JdbcTemplate ,并且spring-tx表示Spring中极其灵活的事务管理抽象 。

4. Spring MVC与Maven

要使用Spring Web和Servlet支持,除了上面的核心依赖关系外,pom还需要包含两个依赖关系:

<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-webmvcspring-web作为依赖项,因此在使用spring-webmvc时不需要显式定义spring-web

5. Maven的Spring Security

安全性Maven依赖项在Spring Security with Maven文章中进行了深入讨论。

6.弹簧测试

可以通过以下依赖项将Spring Test Framework包含在项目中:

<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope>
</dependency>

从Spring 3.2开始,Spring MVC Test项目从github上的一个独立项目开始,已经包含在核心Test Framework中。 这意味着Spring 3.2应用程序应该只使用spring-test依赖项。

对于仍使用Spring 3.1及更低版本的应用程序,较旧的独立Maven依赖项仍然存在,并且可以用于几乎相同的结果。 但是,该依赖项不在Maven Central上,因此使用它需要将自定义存储库添加到项目的pom中。

7.使用里程碑

Spring的发行版托管在Maven Central中。 但是,如果项目需要使用里程碑版本,则需要将自定义Spring存储库添加到pom:

<repositories><repository><id>repository.springframework.maven.milestone</id><name>Spring Framework Maven Milestone Repository</name><url>http://maven.springframework.org/milestone</url></repository>
</repositories>

已经定义了一个此存储库,项目可以定义依赖项,例如:

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.2.0.RC2</version>
</dependency>

8.使用快照

与里程碑类似,快照托管在自定义存储库中:

<repositories><repository><id>repository.springframework.maven.snapshot</id><name>Spring Framework Maven Snapshot Repository</name><url>http://maven.springframework.org/snapshot</url></repository>
</repositories>

在pom中启用SNAPSHOT存储库后,可以引用以下依赖项:

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.3.0.BUILD-SNAPSHOT</version>
</dependency>

乃至:

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.0.0.BUILD-SNAPSHOT</version>
</dependency>

9.结论

本文讨论了将Spring与Maven结合使用的实际细节。 这里介绍的Maven依赖关系当然是一些主要的依赖关系,还有其他一些值得一提且尚未削减的依赖关系。 不过,这应该是在项目中使用Spring的良好起点。

参考:在baeldung博客中,我们JCG合作伙伴 Eugen Paraschiv的Maven带来了Spring 。

翻译自: https://www.javacodegeeks.com/2013/04/spring-with-maven.html

maven 父maven

maven 父maven_Maven的春天相关推荐

  1. maven 父maven_Maven神秘化

    maven 父maven 由于我的Android开发的背景下,我比较习惯到Gradle ,而不是Maven的 . 尽管我知道Gradle基于Maven,但我从未调查过幕后发生的事情. 在过去的一周中, ...

  2. maven 父maven_Maven的鸟瞰图

    maven 父maven 我们每天要做的一件事是使用Maven通过发出诸如mvn install之类的构建命令来构建我们的项目. 然后,Maven查看我们项目的配置文件(亲切地称为POM),神奇地找出 ...

  3. maven 父maven_Maven不会吮吸。 。 。 但是Maven文件会

    maven 父maven 我不会参加整个Maven辩论,但可以说我是所有最佳实践的坚定支持者,对我而言,Maven是最佳实践的体现. 我的意思是说,Maven是围绕特定的最佳实践构建方法构建的. 注意 ...

  4. Maven 父pom中dependencyManagement版本优先级高于传递依赖版本

    当使用了传递依赖,也就是使用了没有显示声明的依赖时,如果继承的<dependencyManagement/>中声明了使用的传递依赖的版本,那么最终使用的依赖是<dependencyM ...

  5. Maven 父文件的依赖 子文件不能接收_maven报错:Non-resolvable parent POM for com...

    今天碰到了以下问题,这个说一下解决方案 下面是我遇到问题查找的相应的解决方法,发现并未解决,但以下也是一个可能的解决方案. 在做淘淘商城的项目一开始搭建后台maven工程的时候,做Taotao-com ...

  6. Maven父工程(统一管理依赖)

      之前一段时间,我和在其他公司工作的同行朋友聊天时无意间聊到项目依赖问题,发现很多公司(包括我们公司)都是有自己一个统一的父工程,而这个工程没有任何的逻辑代码,说起来只有一个pom.xml文件,而这 ...

  7. 创建maven父工程统一管理版本号

    一.建立一个maven工程 pom类型 统一管理依赖以及版本号 子工程不会使用所有的定义的依赖 子工程使用依赖时无需指定版本号 其pom.xml: <?xml version="1.0 ...

  8. 去除maven父依赖_如何在Maven中从父项目中排除依赖项?

    我遇到了和你一样的问题. 在我的项目中,让我们称父pom为parent.pom. parent定义了log4j,slf4j是这样的: org.slf4j slf4j-api ${slf4j-api.v ...

  9. maven父pom和子pom的版本号一并批量修改

    1 设置新的版本号 mvn versions:set -DnewVersion=1.7-SNAPSHOT 2 撤销设置 mvn versions:revert 3 提交设置 mvn versions: ...

最新文章

  1. 网络地址转换(PAT)
  2. 二值网络--Bi-Real Net: Enhancing the Performance of 1-bit CNNs
  3. 年终总结:2021年五大人工智能(AI)和机器学习(ML)发展趋势
  4. 如何检查JavaScript中的数字是否为NaN?
  5. java c 效率_吐槽一下java的效率。。。比起C差的真的好远。。。
  6. 稀疏性和L1正则化基础 Sparsity and Some Basics of L1 Regularization
  7. 程序组件通信方案集锦
  8. ubuntu sendmail安装和使用具体实现[转]
  9. 位数问题(信息学奥赛一本通-T1313)
  10. 超多的CSS3圆角渐变网页按钮
  11. 联想(ThinkServer) RD650做硬件 raid5 配置
  12. 服务器端javascript——Rhino和Node
  13. IDEA插件记录与使用
  14. c语言 特征码思路来破植物大战僵尸
  15. “铭赛科技”科创板IPO:“机器人王国梦”价值几何?
  16. el-menu菜单下划线解决办法
  17. 升级bigsur_2年内彻底摆脱英特尔,苹果重磅发布自研Mac芯片,并对“五大系统”再升级...
  18. 利用手机作为渗透工具的一些思路
  19. 基金从业资格考试总结
  20. CSS3实现边框线条动画特效

热门文章

  1. JavaFX键盘事件
  2. JavaFX UI控件教程(十五)之Combo Box
  3. Java 面试就业指导,100 % 提高面试成功率
  4. art-template入门(六)之解析规则
  5. Spring Boot 集成 Mybatis 实现双数据源
  6. jdk1.8.0_45源码解读——ArrayList的实现
  7. Oracle入门(十四.21)之创建DML触发器:第二部分
  8. 刘奕佳: 我的职校新生活 | 班级日常分享
  9. 中控指纹采集器开发指纹识别项目(说明)
  10. ps中对齐,历史记录,图层