项目中包含特定的弹簧芯罐

时间:2016-01-28 18:45:35

标签: java spring maven spring-mvc netbeans

我在我的pom.xml中包含以下行

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

我想要的特定spring-core JAR版本是4.1.6,但每当我执行mvn clean install时,netbeans中我的项目下的dependencies文件夹显示降级版本(目前为3.0.7.RELEASE)

我想知道如何强制maven将4.1.6.RELEASE jar放在我的依赖项文件夹中。我做完了

mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false

我在我的本地/.m2/repositories文件夹中使用了正确的jar文件夹4.1.6.RELEASE。我需要访问spring-core 3.0.7.RELEASE jar中没有的org.springframework.util.MimeType类。

3 个答案:

答案 0 :(得分:0)

查看mvn依赖关系的结果:树知道另一个jar是否带回了3.0.7版本。并从这种依赖中排除spring-core

查看相同的结果以了解是否存在正确的版本

在问题

中添加pom.xml和mvn dependency:tree的结果

答案 1 :(得分:0)

请按以下步骤操作:

  1. 签入.m2本地存储库,下载Spring 3.0.7 jar(应该在文件夹org-&gt; springframework下)
  2. 删除springframework中存在的文件夹,以便mvn尝试获取所需的依赖项。 如果有帮助请告诉我

答案 2 :(得分:0)

问题在于弹簧核心是大多数弹簧制品的强制性依赖性。很可能您使用的是依赖工件,例如版本3.0.7的spring-context。然后,Maven使用其传递依赖机制获取与依赖工件相同版本的spring-core。

要控制spring-core的版本,您需要将其声明从依赖项部分移动到pom.xml的依赖关系管理部分,如下所示

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>4.1.6</version>
            </dependency>
       </dependencies>
</dependencyManagement>