java - spring版本在pom中设置为3.2.1.RELEASE,但项目中的jar不同

标签 java spring maven dependency-management

在java项目的pom文件中,我将spring依赖项设置为版本3.2.1.RELEASE,但是当我运行mvn dependency:tree时,我得到了不同的结果一些依赖项的版本:

 org.springframework:spring-core:jar:3.0.0.RC3:compile
 org.springframework:spring-expression:jar:3.2.1.RELEASE:compile
 org.springframework:spring-beans:jar:3.0.0.RC3:compile
 org.springframework:spring-context:jar:3.0.0.RC3:compile
 org.springframework:spring-test:jar:3.2.1.RELEASE:test
 com.sun.jersey.contribs:jersey-spring:jar:1.12:compile
 +- org.springframework:spring-web:jar:3.0.0.RC3:compile
 |  \- aopalliance:aopalliance:jar:1.0:compile
 \- org.springframework:spring-aop:jar:3.0.0.RC3:compile
    \- org.springframework:spring-asm:jar:3.0.0.RC3:compile

奇怪的是,在其他也依赖于 spring 3.2.1.RELEASE 的项目中,我实际上得到了我在 pom 文件中声明的密度。

知道为什么会发生这种奇怪的事情吗?这可能是因为我有其他依赖项吗?

编辑: 这是 pom 文件

<!-- properties -->
<properties>
    <org.springframework.version>3.2.1.RELEASE</org.springframework.version>
    <com.jersey.version>1.17</com.jersey.version>
    <org.richfaces.version>4.1.0.Final</org.richfaces.version>
    <jsf.api.version>2.1.7</jsf.api.version>
    <powermock.version>1.5</powermock.version>
</properties>

<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${org.springframework.version}</version>
        <scope>test</scope>
    </dependency>
    <!-- Jersey Spring -->
    <dependency>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>jersey-spring</artifactId>
        <version>1.12</version>
    </dependency>

    <!-- Jersey -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>${com.jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>${com.jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>${com.jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${com.jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>${com.jersey.version}</version>
    </dependency>

    <!-- JSF -->
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>${jsf.api.version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>${jsf.api.version}</version>
    </dependency>

    <!-- Servlet, JSP, JSTL -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
    </dependency>

    <!-- Tomcat 6 need this -->
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>javax.el-api</artifactId>
        <version>2.2.1</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>el-impl</artifactId>
        <version>2.2</version>
    </dependency>

    <!-- Richfaces -->
    <dependency>
        <groupId>org.richfaces.ui</groupId>
        <artifactId>richfaces-components-ui</artifactId>
        <version>${org.richfaces.version}</version>
    </dependency>
    <dependency>
        <groupId>org.richfaces.core</groupId>
        <artifactId>richfaces-core-impl</artifactId>
        <version>${org.richfaces.version}</version>
    </dependency>

    <!-- Log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.15</version>
        <exclusions>
            <exclusion>
                <groupId>javax.jms</groupId>
                <artifactId>jms</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jmx</groupId>
                <artifactId>jmxri</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jdmk</groupId>
                <artifactId>jmxtools</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>

    <!-- Junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>

    <!-- powermock -->
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-easymock</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
    </dependency>

</dependencies>

最佳答案

我认为您项目中的另一个库很可能依赖于 3.0.0.RC。我最好的猜测是泽西 Spring 。尝试从其中排除所有相关的 spring 依赖项,如下所示,它应该会选择您指定的版本。

`

<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
<version>1.12</version>
<exclusions>
    <exclusion>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
</exclusion>
.....

`

关于java - spring版本在pom中设置为3.2.1.RELEASE,但项目中的jar不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16316320/

相关文章:

java - Autowiring 到非 Spring 托管类 (POJO) 时出现 NullPointerException - Spring Boot

java - Spring Boot "No message available"错误(状态 = 404),

java - 为什么请求会发送到 Struts Dispatcher?

maven - 更改默认的mvnDebug端口

java - 专家! Spring Boot 在依赖项目中提到了错误的依赖版本

javascript - 如何使用 Maven 创建纯 JavaScript 项目?

java - 扩大方法类型的相等性检查

java - 如何将java对象转换为clojure中的映射?

java - 将文件类型从 JAVA000064 更改为 JAVA

java - 在 spring mvc 应用程序中设置日期