gpt4 book ai didi

gradle - build.gradle.kts & 多模块项目 : how to add other project so that transitive dependencies are available too

转载 作者:行者123 更新时间:2023-12-03 02:53:21 25 4
gpt4 key购买 nike

具有以下多模块设置:

multi
├── projA
│ └── build.gradle.kts
├── projB
│ └── build.gradle.kts
├── build.gradle.kts
└── settings.gradle.kts

内容如下(略):
  • settings.gradle.kts
    rootProject.name = "multi"
    include("projA", "projB")
  • projA\build.gradle.kts
    dependencies {
    implementation("important-library:1.0")
    }
  • projB\build.gradle.kts
    dependencies {
    implementation(project(":projA"))
    }

  • 为什么我无法访问 importantlibrary:1.0来自 projB ?

    什么有效:如果我在 projA 内有类(class)使用该库,即使该类是从 projB 中的类调用的,它也能正常工作。 (所以间接访问有效)。从 importantlibrary:1.0 直接访问任何类在 projB 内不起作用( Unresolved reference )。

    我在这里想念什么?或者需要设置什么才能使其正常工作?

    Gradle 版本:5.6.1

    最佳答案

    我认为实现您想要的一个好方法是使用 api而不是 implementation . implementation意味着只保留模块内部的依赖关系,而 api旨在将它们与模块一起导出。 projA 的依赖关系然后会变成:

    dependencies {
    api("important-library:1.0")
    }

    这是官方文档的链接: https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_separation

    关于gradle - build.gradle.kts & 多模块项目 : how to add other project so that transitive dependencies are available too,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57709866/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com