将Gradle缓存的jar包转移到maven本地仓库

发布时间 2023-07-13 11:01:29作者: quan的知识库

Gradle构建工具

gradle可以通过指定仓库地址为本地maven仓库地址和远程仓库地址相结合的方式,避免每次都会去远程仓库下载依赖库。这种方式也有一定的问题,如果本地maven仓库有这个依赖,就会从直接加载本地依赖,如果本地仓库没有该依赖,那么还是会从远程下载。但是下载的jar不是存储在本地maven仓库中,而是放在自己的缓存目录中。一般默认为 'gradle安装目录/caches/modules-2/files-2.1'.

可以创建一个gradle的tasks将jar包从gradle的缓存目录转移到maven本地仓库,具体操作如下:

在build.gradle中添加一个task,具体代码如下,绿色部分替换为具体路径

task cacheToLocalMavenRepository(type: Copy) {
  from new File('gradle安装目录/caches/modules-2/files-2.1')
  into 'maven本地仓库目录'
  eachFile {
    List<String> parts = it.path.split('/')
    it.path = (parts[0]+ '/' + parts[1]).replace('.','/') + '/' + parts[2] + '/' + parts[4]
  }
  includeEmptyDirs false
}

执行该task,执行完成后可以发现jar包添加至了本地仓库。