Android Gradle 没有找到远程 AAR
Android Gradle not finding remote AAR
我正在使用 Gradle v5.4 和 Android Gradle 插件 v3.5.2,没有任何问题!
我有一个远程 Artifactory 存储库,我可以在其中上传我的项目所需的 .aar
文件。
当我更新到 Gradle v6.5 和 Android Gradle 插件 v4.0.1 那些 .aar
个文件不再下载。
这就是我添加这些依赖项的方式:
implementation "ar.com.sebasira:some-library:1.0.0@aar"
这在升级前工作得很好。
在日志中我可以看到 AndroidStudio 在这个位置寻找它:
https://myrepo.com.ar/ar/com/sebasira/some-library/1.0.0/some-library-1.0.0.pom
如果我把那个URL放在浏览器里,确实什么都找不到,但是如果我把最后一部分(扩展名)改成.aar
我就可以下载神器了。
我认为添加 @aar 是为了指示 Gradle 查找 .aar
文件,但它似乎不起作用。
我也试过用这种其他方式添加依赖,但没有成功。
implementation group: 'ar.com.sebasira', name: 'some-library', version: '1.0.0', ext: 'aar'
我发现从 Gradle v6.0 开始,Gradle 假定如果 .pom
文件不存在远程仓库是因为神器不存在,所以默认不找。根据release notes:
If Gradle fails to locate the metadata file (.pom
or ivy.xml
) of a module in a repository defined in the repositories { }
section, it now assumes that the module does not exist in that repository.
...
You can opt into the old behavior for selected repositories by adding the artifact()
metadata source.
所以解决方案是将其添加到有问题的存储库中,如下所示:
repositories {
maven {
url 'the-repo-url'
metadataSources {
artifact()
}
}
}
我正在使用 Gradle v5.4 和 Android Gradle 插件 v3.5.2,没有任何问题!
我有一个远程 Artifactory 存储库,我可以在其中上传我的项目所需的 .aar
文件。
当我更新到 Gradle v6.5 和 Android Gradle 插件 v4.0.1 那些 .aar
个文件不再下载。
这就是我添加这些依赖项的方式:
implementation "ar.com.sebasira:some-library:1.0.0@aar"
这在升级前工作得很好。
在日志中我可以看到 AndroidStudio 在这个位置寻找它:
https://myrepo.com.ar/ar/com/sebasira/some-library/1.0.0/some-library-1.0.0.pom
如果我把那个URL放在浏览器里,确实什么都找不到,但是如果我把最后一部分(扩展名)改成.aar
我就可以下载神器了。
我认为添加 @aar 是为了指示 Gradle 查找 .aar
文件,但它似乎不起作用。
我也试过用这种其他方式添加依赖,但没有成功。
implementation group: 'ar.com.sebasira', name: 'some-library', version: '1.0.0', ext: 'aar'
我发现从 Gradle v6.0 开始,Gradle 假定如果 .pom
文件不存在远程仓库是因为神器不存在,所以默认不找。根据release notes:
If Gradle fails to locate the metadata file (
.pom
orivy.xml
) of a module in a repository defined in therepositories { }
section, it now assumes that the module does not exist in that repository....
You can opt into the old behavior for selected repositories by adding the
artifact()
metadata source.
所以解决方案是将其添加到有问题的存储库中,如下所示:
repositories {
maven {
url 'the-repo-url'
metadataSources {
artifact()
}
}
}