【问题标题】:Gradle - understand where a dependency comes fromGradle - 了解依赖的来源
【发布时间】:2018-11-29 09:28:08
【问题描述】:

我有一个项目依赖于 hibernate-core 版本 5.2.x 和 5.3.x。 我想知道 5.2.x 是从哪里来的。 使用 dependencies 任务我只能看到依赖于 5.3.x 的库。

使用dependencyInsight:

$ ./gradlew -q :mymodule:dependencyInsight --dependency hibernate-core --configuration compile
org.hibernate:hibernate-core:5.2.10.Final (selected by rule)
   variant "runtime"

org.hibernate:hibernate-core:5.3.7.Final -> 5.2.10.Final
   variant "runtime"
\--- org.springframework.boot:spring-boot-starter-data-jpa:2.1.0.RELEASE
     +--- project :core
     |    \--- compile
     \--- com.github.alturkovic.distributed-lock:distributed-lock- 
jdbc:1.2.2
          \--- project :core (*)

但是这里列出的两个包都依赖于 5.3,而不是 5.2。

那么我怎么知道这个版本是从哪里来的呢?

编辑:两个模块dependencyInsight,没有--configuration

$ ./gradlew -q :moduleA:dependencyInsight --dependency hibernate-core                        
org.hibernate:hibernate-core:5.3.7.Final (selected by rule)
   variant "default+runtime" [
      Requested attributes not found in the selected variant:
         org.gradle.usage                   = java-api
         org.jetbrains.kotlin.platform.type = jvm
   ]
+--- compileClasspath
\--- org.springframework.boot:spring-boot-starter-data-jpa:2.1.0.RELEASE
     +--- project :core
     |    \--- compileClasspath
     \--- com.github.alturkovic.distributed-lock:distributed-lock-jdbc:1.2.2
          \--- project :core (*)

(*) - dependencies omitted (listed previously)

A web-based, searchable dependency report is available by adding the --scan option.
$ ./gradlew -q :moduleB:dependencyInsight --dependency hibernate-core 
org.hibernate:hibernate-core:5.3.7.Final
   variant "runtime" [
      Requested attributes not found in the selected variant:
         org.gradle.usage                   = java-api
         org.jetbrains.kotlin.platform.type = jvm
   ]
\--- org.springframework.boot:spring-boot-starter-data-jpa:2.1.0.RELEASE
     +--- compileClasspath
     \--- com.github.alturkovic.distributed-lock:distributed-lock-jdbc:1.2.2
          \--- compileClasspath

(*) - dependencies omitted (listed previously)

A web-based, searchable dependency report is available by adding the --scan option.

【问题讨论】:

  • 基本上 'org.hibernate:hibernate-core:5.2.10.Final (selected by rule)' 告诉 gradle 以某种方式忽略您列出的依赖项并强制使用 5.2.10.Final。您可以尝试在没有编译配置的情况下列出依赖项吗?那么运行时和编译会列出来吗?可能是这个规则是由像“Spring dependency-management-plugin”这样的弹簧模块添加的,在这里可能是一个有用的答案:stackoverflow.com/questions/37153484/…
  • 如果没有您的 build.gradle 文件,很难判断,尽管根据输出的第一行判断,我猜测构建变体的某些内容
  • @prophet1906 使用依赖任务是我尝试的第一件事:D
  • @JeroenSteenbeeke 不使用构建变体(这些不只是 Android 的东西吗?)

标签: java gradle


【解决方案1】:

这有点尴尬。

在我们的gradle.properties 中,我们有:

hibernate.version=5.2.10.Final

我并没有意识到这一点。今天偶然发现的。

【讨论】:

    猜你喜欢
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多