背景
本文档主要针对离线状态下,导入gradle项目。实际能用的情况是必需要先要有一个配置好环境的gradle项目源码,相关的gradle配置,以及完整的依赖包。经过几天的百度和文档查看,以及不懈的努力,总算弄出来一些成果。此前并未了解过gradle,现在也只是有浅显的理解。如果有哪里写的不对,或者理解错误的地方,欢迎指出。
为简化说明,简称配置好的gradle项目为 gradleDone ,要配置的gradle项目为gradleDoing
原理及思路
经过多次尝试,发现离线状态下,gradle无法找到我配置的本地仓库。不管是配置本地仓库,还是导入时offline模式。
比方我本地仓库地址为:
D: \gradle-repository\repo-A
实际jar包存放地址是:
D:\gradle-repository\repo-A\caches\modules-2\files-2.1\oss\oss-parent\4.1\log4j-bom-2.11.2.jar
它找的地址是:
D: \gradle-repository\repo-A \oss\oss-parent\4.1\log4j-bom-2.11.2.jar
从上面可以看出,gradle 解析jar包路径时,没有包括 caches\modules-2\files-2.1(gradle本地仓库默认建立的目录) 这层。它实际是 本地仓库+\组织名+\模块名+\版本号+\jar包名 来查找的jar包。
于是我想要知道是否可以通过手工配置的方式,告诉gradle如何查找我存放的本地jar包。无奈查询很久没有相关信息(详细说明gradle是如何找到jar位置的)。
后来想到,已配置好的项目应该在某个地方存储好了依赖jar包的位置信息。通过合理判断得知,这个jar包位置信息最有可能是维护在具体的项目路径下。
下面是我猜测的结果: