kotlin-compiler-embeddable下载慢的解决办法

1,451 阅读2分钟

Kotlin Compiler Embeddable下载地址

mvnrepository.com/artifact/or…

有次卡在Gradle:Download kotlin-compiler-embeddable-1.7.0.jar…1个小时,前文介绍的方法,替换dns、搭梯子等方法都用了,还是无法解决。在查阅各种资料后,琢磨出的解决方案:

1:在代码托管平台中搜索该库,发现能搜索到,且能正常下载,排除网络原因。

2:找到Gradle下载和缓存第三库的文件夹(C:\Users\个人文件夹.gradle\caches\modules-2\files-2.1\),在“kotlin-compiler-embeddable”发现了其他版本,唯独没发现需要的1.7.0文件夹

3:在这些文件夹,如1.7.10文件夹中,均会有一些随机名字命名的文件夹,这些随机文件夹里的文件才是我们的第三库。如1.7.10文件夹中有三个随机名字的文件夹,点进去后才是jar包、sources包、pom文件

4:所以不能新建1.7.0文件夹后,将下载的kotlin-compiler-embeddable.jar包、sources包直接放入,需要新建随机名字的文件夹。那么问题来了,这些随机名字是随便生成的还是依据某个规则生成的?通过查阅大量资料得知,是根据jar包下载地址,通过shasum算法加密后的地址。可是我们不知道如何加密,也就无法自己动手生成了。

5:通过查找 Gradle Docs,发现各个文件夹的对应关系,于是在文件夹C:\Users\个人文件夹.gradle\caches\modules-2\metadata-2.97中发现一个可疑文件“resource-at-url.bin”。这是一个二进制文件,我们可以通过文本软件(windows电脑如记事本)打开后发现确实所有缓存库的下载地址。通过全局搜索“kotlin-compiler-embeddable-1.7.0”找到pom、jar、sources三个文件的随机名称 2f94c7f9a21bec846098318e1cee7b2b498ffedd4d09852239f61842072b40b524882fa3caaed371ff3d45d05de434d94afa0a67889945fed5f65851。找到后直接新建1.7.0文件夹,随后新建这三个文件夹,将下载好的pom、jar、sources分别放入即可。(resource-at-url.bin也包含了这些库的下载地址,紧跟在随机名字后面)

经我实践发现,随机生成的这个文件目录名好像不重要,我猜只是防止重复吧。比如1.7.22这种只要版本号对了,它最终会找到对应的文件