【问题标题】:spring-data-jpa 1.6 requires spring framework 3 libraries, is that true, or what did I miss?spring-data-jpa 1.6 需要 spring framework 3 库,这是真的,还是我错过了什么?
【发布时间】:2014-08-21 00:01:55
【问题描述】:

来自另一个问题,我发现我的 Spring 库有点混乱。

我有 Spring-4.0.5 库(是的,我想要它们)和 Spring 3.2.9-libraries,它们显然是通过 maven 作为 spring-data-jpa-1.6 依赖项给出的。 Spring-data-jpa 1.4 似乎没有拉出 spring 3 库,但我绝对更喜欢使用当前的 1.6。

马文:

<properties>
    <org.springframework.version>4.0.5.RELEASE</org.springframework.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.6.0.RELEASE</version>
</dependency>
[...]

谁能证实这一点,或者我只是做错了什么?

【问题讨论】:

    标签: java spring maven spring-data-jpa


    【解决方案1】:

    dexBerlins 答案的替代方法是使用 元素。这样做的好处是,当您使用它时,groupid 和 artifactid 的 any 传递依赖将被忽略并使用您在元素中指定的版本。基本上是全局覆盖:

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

    文档 -> http://maven.apache.org/pom.html#Dependencies

    【讨论】:

    • 我的 pom.xml 中有这个依赖项,但是 spring-data-jpa 将 spring-xyz-3.2.9 拉到了旁边。所以我在混合一些库(spring-xyz 的 3.2.9 和 4.0.5)时遇到了问题。这就是我发现这个问题的原因。
    • 嗨 dexBerlin,抱歉只有一半的解决方案(从褪色的记忆中消失)我已经更新了原帖
    【解决方案2】:

    我也遇到了同样的情况,只是明确地覆盖 spring-modules 并且旧的引用消失了。例如。

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

    我们必须假设 Spring Data(下一个新版本)应该引用一个新的 Spring Framework 版本。

    【讨论】:

      【解决方案3】:

      根据 Manuel Jordan 的建议,我必须手动排除依赖项,因此这里是此依赖项的完整 maven 代码:

      <dependency>
              <groupId>org.springframework.data</groupId>
              <artifactId>spring-data-jpa</artifactId>
              <version>1.6.0.RELEASE</version>
              <exclusions>
                  <exclusion>
                      <artifactId>spring-aop</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
                  <exclusion>
                      <artifactId>spring-beans</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
                  <exclusion>
                      <artifactId>spring-context</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
                  <exclusion>
                      <artifactId>spring-core</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
                  <exclusion>
                      <artifactId>spring-expression</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
                  <exclusion>
                      <artifactId>spring-instrument</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
                  <exclusion>
                      <artifactId>spring-jdbc</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
                  <exclusion>
                      <artifactId>spring-orm</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
                  <exclusion>
                      <artifactId>spring-tx</artifactId>
                      <groupId>org.springframework</groupId>
                  </exclusion>
              </exclusions>
      </dependency>
      

      【讨论】:

        猜你喜欢
        • 2021-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-17
        • 2011-01-03
        • 2018-12-22
        相关资源
        最近更新 更多