相关疑难解决方法(0)

Go模块,私有仓库和gopath

我们正在将内部代码库从dep依赖项管理器转换为go模块(vgo或使用go1.11.2内置)。假设我们有这样的代码:

$ GOPATH / src / mycompany / myprogram / main.go:

package main

import (
        "fmt"
        lib "mycompany/mylib" )

func main() {
        fmt.Println("2+3=", lib.add(2, 3)) 
}
Run Code Online (Sandbox Code Playgroud)

$ GOPATH / src / mycompany / myprogram / go.mod:

module mycompany/myprogram
Run Code Online (Sandbox Code Playgroud)

(它没有任何依赖关系;我们的实际代码中有)。

$ GOPATH / src / mycompany / mylib / lib.go:

package mylib

func Add(x int, y int) int {
        return x + y
}
Run Code Online (Sandbox Code Playgroud)

我没有将此代码模块化。不管我是否做都不重要。

这些是简单的示例,但是我们的内部代码遵循与历史上类似的结构。

由于这些目录位于Gopath上,因此export GO111MODULE=auto仍可以像以前一样进行构建,并且可以正常工作(未使用模块,因为我们位于gopath上)。但是,设置后,export GO111MODULE=on我立即收到错误消息:

build mycompany/myprogram: cannot find …
Run Code Online (Sandbox Code Playgroud)

go go-modules

9
推荐指数
3
解决办法
8231
查看次数

标签 统计

go ×1

go-modules ×1