gradle 使用maven发布找不到传递依赖项

mqxuamgl  于 2023-03-03  发布在  Maven
关注(0)|答案(1)|浏览(228)

我已经检查了多个问题,并检查了答案,以及,但这些都不为我工作。
库A-〉库B-〉应用程序
我想从我的应用程序访问LibraryA的类,我在LibraryB中添加了LibraryA,并在App中实现了LibraryB

api("com.xyz.abc:LibraryA:1.0.0")

我使用api关键字在LibraryB中添加依赖项,两个库都发布在maven上,然后我使用implementation关键字在应用中实现了LibraryB,并将transitive保持为true

implementation("com.xyz.abc:LibraryB:1.0.0"){
    transitive = true
}

完成所有这些之后,当我试图从LibraryA访问一个类时,它给出了一个错误Unresolved Reference,但是如果我尝试做同样的事情,将LibraryB添加为module,那么一切都很好。
请让我知道,我还应该改变什么,使它为我工作。提前感谢!!

ni65a41a

ni65a41a1#

我能够通过一个小的修改来解决传递依赖关系的问题。在阅读了多个Stackoverflow问题后,我发现到处都提到依赖关系应该存在于pom.xml文件中。但对我来说,它没有被添加,即使使用api来包括依赖关系,应用程序也无法访问它。我使用以下代码在pom文件中添加依赖关系:

withXml {
    asNode().appendNode("dependencies").let {
        for (dependency in configurations["implementation"].dependencies) {
            it.appendNode("dependency").apply {
                appendNode("groupId", dependency.group)
                appendNode("artifactId", dependency.name)
                appendNode("version", dependency.version)
            }
        }
    }
}

这只是添加了使用implementation关键字包含的依赖项,但是在添加了下面的代码之后,我也能够访问传递依赖项。

withXml {
    asNode().appendNode("dependencies").let {
        for (dependency in configurations["api"].dependencies) {
            it.appendNode("dependency").apply {
                appendNode("groupId", dependency.group)
                appendNode("artifactId", dependency.name)
                appendNode("version", dependency.version)
            }
        }
    }
}

相关问题