gradle 依赖关系 (c) 和 (n) 是什么意思?

gradle dependency what does (c) and (n) mean?

非常接近this SO post,并在评论中询问,但在那里不清楚。

$ git clone https://github.com/k9mail/k-9.git
$ cd k-9/mail/protocols/smtp
$ ../../../gradlew dependencies | grep "4.7.1 (\*)\|4.7.1 (c)\|4.7.1 (n)" | sort -u
+--- com.jakewharton.timber:timber:4.7.1 (*)
+--- com.jakewharton.timber:timber:4.7.1 (n)
+--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c)

(c)(n) 后缀是什么意思?

遗憾的是,Gradle 文档没有涵盖这个主题,所以有点混乱。

发布 gradlew dependencies | tail 显示 图例 解释印刷后缀的含义。

(c) - dependency constraint
(*) - dependencies omitted (listed previously)
(n) - Not resolved (configuration is not meant to be resolved)
  • Constraints 不会被拉入,除非其他依赖项将它们拉入。
  • 传递依赖项只列出一次,然后被省略。
  • 仅针对 holding/listing 依赖项 not resolving it to a graph 声明。 implementationapi.
  • 等配置就是这种情况