java - 如何匹配Maven的groundId发布版本

标签 java spring maven

我有一个 Maven 项目,我刚刚更改了我的 spring-data-neo4j 依赖项版本。

它有:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>1.12.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j</artifactId>
        <version>5.0.0.RELEASE</version>
    </dependency>

之前的内容

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j</artifactId>
        <version>4.1.3.RELEASE</version>
    </dependency>

所以,我收到一个错误:

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.1.RELEASE:run (default-cli) on project myproject: An exception occurred while running. null: InvocationTargetException: org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute(Ljava/lang/String;)Ljava/util/Optional; -> [Help 1]

这是因为(我认为)我的 2 个依赖项具有相同的 groupId,但不是从同一版本的组中提取。

问题

我如何知道应该使用哪个版本的 spring-data-commons 来匹配 5.0.0 版本的 spring-data-neo4j

更新

我通过尝试大量版本来解决我的问题,直到错误消失。这并不是真正的答案,但我的问题现在已经解决了。

最佳答案

问题在于将 spring-data-commons 1.12.0.RELEASE 单独定义为 pom.xml 中的依赖项

仅定义 spring-data-neo4j 5.0.0.RELEASE 将间接获得 spring-data-commons 的所属版本,即 2.0.0.RELEASE,但如果您还单独定义较旧的 spring-data-commons 1.12 .0.RELEASE,那么它将覆盖较新的传递依赖版本,并会导致遇到的问题;可能是因为新版本的 neo4j 会尝试使用 spring-data-commons API,该 API 在版本 1.12.0.RELEASE 和 2.0.0.RELEASE 之间发生了变化

查看mvn dependency:tree打印输出的相关部分

仅定义 spring-data-neo4j 5.0.0.RELEASE

[INFO] +- org.springframework.data:spring-data-neo4j:jar:5.0.0.RELEASE:compile
[INFO]    +- org.springframework.data:spring-data-commons:jar:2.0.0.RELEASE:compile

定义 spring-data-neo4j 5.0.0.RELEASE 和 spring-data-commons 1.12.0.RELEASE

[INFO] +- org.springframework.data:spring-data-commons:jar:1.12.0.RELEASE:compile
[INFO] +- org.springframework.data:spring-data-neo4j:jar:5.0.0.RELEASE:compile
          (...no transitive spring-data-commons:jar here)

关于java - 如何匹配Maven的groundId发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46587477/

相关文章:

java在maven和eclipse中与clojure混合

java - 重新安装 Eclipse 后无法再构建项目

java - 如果我移动鼠标,鼠标单击停止移动后触发移动的对象

java - 将外部文件夹添加到可运行 jar 中的 ClassPath

java - 如何将一个 bean 注入(inject)另一个基于 getter 的 bean

sql - 在 Maven 测试阶段初始化数据库用于测试目的

java - 运行 Maven 构建 jar 文件时无法找到记录器类

javascript - 如何遍历选定的 HTML 表格行并从每一行中检索数据

java - While 循环和 GUI

java - 如何解决Spring Boot中Microsoft SQL的 "cannot cast object"问题?