如何升级所有弹簧依赖?

时间:2015-01-06 09:28:25

标签: java spring maven

我有一个基于spring-webmvc的Web应用程序。它使用了我的项目中使用的弹簧版本不支持的org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer

我的项目的Spring依赖关系看起来像这样:

enter image description here

我想将所有Spring依赖项从3.1.1升级到4.1.2。怎么做?

4 个答案:

答案 0 :(得分:4)

您应该从pom.xml中弹出版本的硬编码版本移动到属性,例如

在您的房产内

 <springframework.version>4.0.2.RELEASE</springframework.version>

在你的依赖项中

<!-- spring -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>${springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>${springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>${springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${springframework.version}</version>
</dependency>
<!-- spring security -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>${springframework.security.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>${springframework.security.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>${springframework.security.version}</version>
</dependency>

使用此设置很容易迁移版本,列出的代码只是复制/粘贴,不要理所当然,使用您需要的

答案 1 :(得分:3)

您可以全局更新依赖关系:

<properties>
        <spring.version>4.1.2.RELEASE</spring.version>
</properties>

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

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

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

使用此全局依赖关系版本管理,您可以避免使用某些version compatibility exception

答案 2 :(得分:2)

由于您使用的是Maven,因此您的pom依赖项可能看起来像

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-beans</artifactId>
  <version>3.1.1.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>3.1.1.RELEASE</version>
</dependency>
...

你可以用$ {spring-version}替换“3.1.1.RELEASE”,并将以下内容添加到你的pom文件中

<properties>
  <spring-version>4.1.2</spring-version>
</properties>

它可以更轻松地更改所有弹簧依赖项的版本

答案 3 :(得分:1)

如果您使用maven构建工具,那么将spring 3升级到spring 4非常简单,只需在属性xml标记中打开pom.xml文件,只需将版本3.x.x更改为4。 e.g:

<org.springframework-version>3.0.2.RELEASE</org.springframework-version>

<org.springframework-version>4.0.2.RELEASE</org.springframework-version>