github.com/megatontech/mynoteforgo@v0.0.0-20200507084910-5d0c6ea6e890/源码/cmd/go/testdata/script/mod_gobuild_import.txt (about) 1 # go/build's Import should find modules by invoking the go command 2 3 go build -o $WORK/testimport.exe ./testimport 4 5 # GO111MODULE=off 6 env GO111MODULE=off 7 ! exec $WORK/testimport.exe x/y/z/w . 8 9 # GO111MODULE=auto in GOPATH/src 10 env GO111MODULE= 11 ! exec $WORK/testimport.exe x/y/z/w . 12 env GO111MODULE=auto 13 ! exec $WORK/testimport.exe x/y/z/w . 14 15 # GO111MODULE=auto outside GOPATH/src 16 cd $GOPATH/other 17 env GO111MODULE= 18 exec $WORK/testimport.exe other/x/y/z/w . 19 stdout w2.go 20 21 ! exec $WORK/testimport.exe x/y/z/w . 22 stderr 'cannot find module providing package x/y/z/w' 23 24 cd z 25 env GO111MODULE=auto 26 exec $WORK/testimport.exe other/x/y/z/w . 27 stdout w2.go 28 29 # GO111MODULE=on outside GOPATH/src 30 env GO111MODULE=on 31 exec $WORK/testimport.exe other/x/y/z/w . 32 stdout w2.go 33 34 # GO111MODULE=on in GOPATH/src 35 cd $GOPATH/src 36 exec $WORK/testimport.exe x/y/z/w . 37 stdout w1.go 38 cd w 39 exec $WORK/testimport.exe x/y/z/w .. 40 stdout w1.go 41 42 -- go.mod -- 43 module x/y/z 44 45 -- z.go -- 46 package z 47 48 -- w/w1.go -- 49 package w 50 51 -- testimport/x.go -- 52 package main 53 54 import ( 55 "fmt" 56 "go/build" 57 "log" 58 "os" 59 "strings" 60 ) 61 62 func main() { 63 p, err := build.Import(os.Args[1], os.Args[2], 0) 64 if err != nil { 65 log.Fatal(err) 66 } 67 fmt.Printf("%s\n%s\n", p.Dir, strings.Join(p.GoFiles, " ")) 68 } 69 70 -- $GOPATH/other/go.mod -- 71 module other/x/y 72 73 -- $GOPATH/other/z/w/w2.go -- 74 package w