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