1

我有一个 Spring MVC Web 应用程序,它具有以下 Spring 依赖项:

spring-aop-3.2.1.RELEASE
spring-beans-3.2.1.RELEASE
spring-context-support-3.2.1.RELEASE
spring-context-3.2.1.RELEASE
spring-core-3.2.1.RELEASE
spring-expression-3.2.1.RELEASE
spring-jdbc-3.2.1.RELEASE
spring-jms-3.2.1.RELEASE
spring-orm-3.2.1.RELEASE
spring-test-3.2.1.RELEASE
spring-tx-3.2.1.RELEASE
spring-web-3.2.1.RELEASE
spring-webmvc-3.2.1.RELEASE
spring-aspects-3.2.1.RELEASE

spring-spring-security-core-3.2.0.RELEASE
spring-security-web-3.2.0.RELEASE
spring-security-config-3.2.0.RELEASE
spring-security-taglibs-3.2.0.RELEASE

我的问题是,当我使用 mvn clean install 构建时,它会尝试下载 spring-beans-3.2.10.RELEASE。我假设我的依赖项之一是将其拖入但不确定是哪个。

任何帮助将不胜感激。提前致谢。

4

2 回答 2

2

<dependencyManagement>您可以在POM 部分定义您的依赖项。您在其中定义的版本<dependencyManagement>不仅适用于您在顶级<dependencies>部分中提到的依赖项,还适用于它们的传递依赖项。

例如:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.2.1.RELEASE</version>
        </dependency>
        ...
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
    </dependency>
    ...
</dependencies>

这些片段将确保 Maven 仅使用 version 3.2.1.RELEASE。(请注意,<version>第二部分中没有。)

如果您仍然想找出该依赖项的来源,并且如果您使用 Eclipse,请打开pom.xml并查看Dependency Hierarchy选项卡。如有必要,您可以在此处双击依赖项:它将打开依赖项自己的依赖项pom.xml,您可以在其中进一步研究传递依赖项。

于 2014-07-16T12:37:03.250 回答
0

您可以通过以下方式解决您的问题:

    <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>4.1.0.BUILD-SNAPSHOT</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>
<dependencies>

然后您可以管理您的依赖关系,而无需担心单个版本号。这样,所有 spring 依赖项都将具有相同的 4.1.0.BUILD-SNAPSHOT 版本

于 2014-07-16T13:00:46.190 回答