gpt4 book ai didi

私有(private) Maven 仓库中的 Android 库的子依赖项未被项目下载

转载 作者:搜寻专家 更新时间:2023-11-01 08:28:44 25 4
gpt4 key购买 nike

Android 库托管在我工作的公司的私有(private) Maven Artifactory 存储库中。该库使用 okhttp 作为依赖项之一。

在应用程序项目中,我这样导入这个库:

compile 'com.domain.artifact:myartifact:1.0.0@aar'

库已导入,但是当我调用库中的 API 时,由于缺少 okhttp 类,应用程序崩溃并出现 ClassNotFoundException。

执行gradle命令打印依赖显示应用项目没有下载任何库的依赖(包括okhttp)

+--- com.domain.artifact:myartifact:1.0.0
\--- com.android.support:appcompat-v7:25.0.1
\--- com.android.support:support-v4:25.0.1
+--- com.android.support:support-compat:25.0.1
| \--- com.android.support:support-annotations:25.0.1
+--- com.android.support:support-media-compat:25.0.1
| \--- com.android.support:support-compat:25.0.1 (*)
+--- com.android.support:support-core-utils:25.0.1
| \--- com.android.support:support-compat:25.0.1 (*)
\--- com.android.support:support-core-ui:25.0.1

如何确保库的依赖项也已成功下载或发布?

====== 附加信息 =======

库使用“maven-publish”插件发布,在gradle脚本中使用“pom.withXml”添加依赖,okhttp在库的POM文件中。

<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.4.1</version>
</dependency>

最佳答案

您在依赖项中使用了 @aar 符号。

这意味着您只想下载不包含所有嵌套依赖项的 aar Artifact 。
documentation这部分可以查看:
检查 Artifact only notation 部分:

An artifact only notation creates a module dependency which downloads only the artifact file with the specified extension. Existing module descriptors are ignored.

使用@aar 表示法,如果你想下载依赖,你应该添加transitive=true

我希望省略 @aar 它应该有效。

关于私有(private) Maven 仓库中的 Android 库的子依赖项未被项目下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430292/

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