无法在全新的Go项目中加载软件包

时间:2019-08-18 15:43:39

标签: go go-modules

我正在尝试Go中的模块。我不在GOPATH之外,并且使用的是1.12.6版:

GOBIN="/home/x80486/Workshop/go/bin/"
GOPATH="/home/x80486/Workshop/go/"
GOROOT="/home/x80486/.asdf/installs/golang/1.12.6/go/"

我创建了一个新项目,并将其初始化为/home/x80486/Workshop/Development/gauge-basics中的模块。然后,我创建了一个包含以下内容的文件example_spec.go

package stepImpl

import (
  "github.com/getgauge-contrib/gauge-go/gauge"
)

var _ = gauge.Step("Run me before any other", func() {})

...然后我运行了go test

[x80486@uplink gauge-basics]$ go test
go: finding github.com/getgauge-contrib/gauge-go/gauge latest
go: finding github.com/getgauge/common latest
go: finding github.com/golang/protobuf/proto latest
go: finding github.com/dmotylev/goproperties latest
?       github.com/x80486/gauge-basics  [no test files]

一切正常,但是,一旦我将此文件移到名为stepImpl的文件夹中,便无济于事:

[x80486@uplink gauge-basics]$ go build
can't load package: package github.com/x80486/gauge-basics: unknown import path "github.com/x80486/gauge-basics": cannot find module providing package github.com/x80486/gauge-basics

我不明白为什么将文件移动到具有程序包名称的文件夹会破坏项目。


这是生成的go.mod文件:

module github.com/x80486/gauge-basics

go 1.12

require (
    github.com/dmotylev/goproperties v0.0.0-20140630191356-7cbffbaada47 // indirect
    github.com/getgauge-contrib/gauge-go v0.1.3 // indirect
    github.com/getgauge/common v0.0.0-20190514095629-619e107433ce // indirect
    github.com/golang/protobuf v1.3.2 // indirect
)

1 个答案:

答案 0 :(得分:2)

在github.com/x80486/gauge-basics下没有.go文件,因为您将它们移到了另一个目录。您可以在包含源文件的目录下运行go build,也可以在gauge-basics目录中添加另一个.go来导入它们。