Go Modules does not recognize files under GOPATH
Asked Answered
I

2

4

I was trying to set up GO Modules in intellij and was trying import a package under GOPATH. When I use Go Modules, it doesnt seem to 'import' the packages from GOPATH. Any ideas on what I could be doing wrong?

Below is a screenshot. Left pic: GoModules, which doesnt recognize the package. Right Pic: Simple GO project, which recognized the packages.

I tried doing sync package, with no luck.

Go version - 1.12.3

Initellij_GO_MOD.

Improvvisatore answered 12/4, 2019 at 11:17 Comment(0)
M
9

The two supported modes ("GOPATH mode" and "module-aware mode") are mutually exclusive modes. This means you can't have both, you can't mix modules and GOPATH.

Quoting from Command go: GOPATH and Modules:

When using modules, GOPATH is no longer used for resolving imports. However, it is still used to store downloaded source code (in GOPATH/pkg/mod) and compiled commands (in GOPATH/bin).

And also Command go: Preliminary module support:

For more fine-grained control, the module support in Go 1.11 respects a temporary environment variable, GO111MODULE, which can be set to one of three string values: off, on, or auto (the default). If GO111MODULE=off, then the go command never uses the new module support. Instead it looks in vendor directories and GOPATH to find dependencies; we now refer to this as "GOPATH mode." If GO111MODULE=on, then the go command requires the use of modules, never consulting GOPATH. We refer to this as the command being module-aware or running in "module-aware mode". If GO111MODULE=auto or is unset, then the go command enables or disables module support based on the current directory. Module support is enabled only when the current directory is outside GOPATH/src and itself contains a go.mod file or is below a directory containing a go.mod file.

In module-aware mode, GOPATH no longer defines the meaning of imports during a build, but it still stores downloaded dependencies (in GOPATH/pkg/mod) and installed commands (in GOPATH/bin, unless GOBIN is set).

If you wish to use packages located on your disk, see How to use a module that is outside of "GOPATH" in another module?

Mickeymicki answered 12/4, 2019 at 11:27 Comment(1)
Thank you, that makes sense. I am new to go-modules and I was trying to figure out how it worked.Improvvisatore
T
4

I faced this problem, and I use this setting for each project, and it solved my problem. enter image description here

But I'm still looking for a global GO module configuration.

Torrell answered 5/5, 2021 at 8:30 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.