主要思路还是让gradle使用本地的maven库。
由于gradle在断网时连自己cache里的库都索引不到,所以先用代码:
task cacheToLocalMavenRepository(type: Copy) {
from new File(gradle.gradleUserHomeDir, 'caches/modules-2/files-2.1')
into repositories.mavenLocal().url
eachFile {
List<String> parts = it.path.split('/')
it.path = (parts[0]+ '/' + parts[1]).replace('.','/') + '/' + parts[2] + '/' + parts[4]
}
includeEmptyDirs false
}
把已经配置好的gradle缓存的各种库拷贝到本地maven库中,然后打压缩包拷走。
到断网的目标主机直接覆盖maven库,稍微调整下目录结构,比如javax的某个包,会把“.”解析成目录,手动改一下就好,就能直接在断网机器使用gradle了。
当然,在gradle里要用mavenLocal()指定使用本地maven库。