Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何找到Go模块源缓存?_Go_Circleci_Go Modules - Fatal编程技术网

如何找到Go模块源缓存?

如何找到Go模块源缓存?,go,circleci,go-modules,Go,Circleci,Go Modules,我已将一个项目升级为Go 1.11,并为我的项目启用了模块支持,但CircleCI似乎正在重新下载每个版本的依赖项。我知道CircleCI允许在重建之间进行缓存,所以我查看了Go模块的文档,虽然它提到了缓存,但我似乎找不到它实际存在的位置 Go模块的源缓存在哪里?从最终的1.11版本开始,Go模块缓存(用于存储下载的模块和源代码)位于$GOPATH/pkg/mod位置(参见文档)。为了澄清,go build缓存(用于存储最近的编译结果)位于不同的位置 ,表示它位于$GOPATH/src/mod中

我已将一个项目升级为Go 1.11,并为我的项目启用了模块支持,但CircleCI似乎正在重新下载每个版本的依赖项。我知道CircleCI允许在重建之间进行缓存,所以我查看了Go模块的文档,虽然它提到了缓存,但我似乎找不到它实际存在的位置


Go模块的源缓存在哪里?

从最终的1.11版本开始,Go模块缓存(用于存储下载的模块和源代码)位于
$GOPATH/pkg/mod
位置(参见文档)。为了澄清,go build缓存(用于存储最近的编译结果)位于不同的位置

,表示它位于
$GOPATH/src/mod
中,但在最近~40天的时间跨度内,golang团队一定改变了目标位置。讨论了下载的项目为什么会出现在
$GOPATH/pkg

您还可以使用
go mod download-json
命令查看下载的模块/源元数据及其在本地磁盘上的位置。输出示例如下:

$ go mod download -json
go: finding github.com/aws/aws-sdk-go v1.14.5
go: finding github.com/aws/aws-lambda-go v1.2.0
{
    "Path": "github.com/aws/aws-lambda-go",
    "Version": "v1.2.0",
    "Info": "/go/pkg/mod/cache/download/github.com/aws/aws-lambda-go/@v/v1.2.0.info",
    "GoMod": "/go/pkg/mod/cache/download/github.com/aws/aws-lambda-go/@v/v1.2.0.mod",
    "Zip": "/go/pkg/mod/cache/download/github.com/aws/aws-lambda-go/@v/v1.2.0.zip",
    "Dir": "/go/pkg/mod/github.com/aws/aws-lambda-go@v1.2.0",
    "Sum": "h1:2f0pbAKMNNhvOkjI9BCrwoeIiduSTlYpD0iKEN1neuQ=",
    "GoModSum": "h1:zUsUQhAUjYzR8AuduJPCfhBuKWUaDbQiPOG+ouzmE1A="
}
{
    "Path": "github.com/aws/aws-sdk-go",
    "Version": "v1.14.5",
    "Info": "/go/pkg/mod/cache/download/github.com/aws/aws-sdk-go/@v/v1.14.5.info",
    "GoMod": "/go/pkg/mod/cache/download/github.com/aws/aws-sdk-go/@v/v1.14.5.mod",
    "Zip": "/go/pkg/mod/cache/download/github.com/aws/aws-sdk-go/@v/v1.14.5.zip",
    "Dir": "/go/pkg/mod/github.com/aws/aws-sdk-go@v1.14.5",
    "Sum": "h1:+l1m6QH6LypE2kL0p/G0Oh7ceCv+IVQ1h5UEBt2xjjU=",
    "GoModSum": "h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k="
}
该输出来自CircleCI 2.0的构建,使用他们官方的
CircleCI/golang:1.11
图像。这是一个精心设计的示例,演示如何为新的golang模块缓存位置包括
恢复缓存
保存缓存
步骤:

steps:
    - checkout
    - restore_cache:
       keys:
         - gomod-cache-{{ checksum "go.sum" }}
    - run: go vet ./...
    - save_cache:
        key: gomod-cache-{{ checksum "go.sum" }}
        paths:
          - /go/pkg/mod

您正在使用CircleCI 2.0吗?我想是的,因为1.0在8月31日就要结束了。是的,CircleCI 2.0