您可以使用 gradle 访问依赖项的依赖项吗?

Can you access depedencies of depedencies with gradle?

假设您有一个 Java 项目,其中 Gradle 用于构建系统,并且您依赖于库 A。此外,库 A 依赖于库 B。您可以调用 code(methods, 类, 等..) 来自图书馆 B?

如果可以访问B的服务,有什么办法可以防止吗?即只有直系亲属可以访问 B 代码。

Suppose that you have a Java project with Gradle for the build system, and you depend on library A. Furthermore, library A depends on library B. Can you call code(methods, classes, etc..) from library B?

是的,假设它已使用正确的 meta-data(Maven POM 或 Gradle 模块文件)发布。

If you can access the services of B, is there a way to prevent this? i.e. only direct depedents can access B code.

A(如B)的依赖称为传递依赖,你可以禁用dependency declaration中的解析] 与 transitive = false。但是,如果您这样做,A 可能会中断。除非 A 的 meta-data 完全损坏,否则通常不应该这样做。