Thank you so much! I actually got it to work without having a dot in the first part of the import path. It seems the only thing I was missing was this line in mod.go for the demo code: require foo/bar v0.0.0 I just had the replace directive line without a corresponding require directive.
On Fri, Oct 19, 2018 at 6:13 PM Paul Jolly <p...@myitcv.io> wrote: > Hi Mark, > > When importing a module package, the first element in the path must > contain a ".". Hence "foo" is invalid. Here is a working example: > > $ cd $HOME > $ mkdir bar > $ cd bar > $ go mod init example.com/bar > go: creating new go.mod: module example.com/bar > $ cat <<EOD >bar.go > package bar > import "fmt" > func Hello() { > fmt.Println("Hello from bar!") > } > EOD > $ cd $HOME > $ mkdir foo > $ cd foo > $ go mod init example.com/foo > go: creating new go.mod: module example.com/foo > $ cat <<EOD >main.go > package main > > import "example.com/bar" > > func main() { > bar.Hello() > } > EOD > $ go mod edit -require=example.com/bar@v0.0.0 -replace= > example.com/bar=$HOME/bar > $ cat go.mod > module example.com/foo > > require example.com/bar v0.0.0 > > replace example.com/bar => /root/bar > $ go run . > Hello from bar! > On Fri, 19 Oct 2018 at 21:42, Mark Volkmann <r.mark.volkm...@gmail.com> > wrote: > > > > I have a simple demo application that wants to use a package that is on > my local file system. > > The code for the package is in /Users/Mark/foo/bar. > > This directory contains the file bar.go which contains: > > > > package bar > > import "fmt" > > func Hello() { > > fmt.Println("Hello from bar!") > > } > > > > It also contains the file go.mod which just contains: > > > > module bar > > > > The demo application in another directory imports this as "foo/bar" in > the file main.go. > > It has a go.mod file that contains the following: > > > > module demo > > replace foo/bar => /Users/Mark/foo/bar > > > > When I enter "go run main.go" in the directory of the demo code I get > > build demo: cannot find module for path foo/bar > > > > Is there something wrong with my use of the "replace" directive? > > > > None of this code is under the directory pointed to by GOPATH because > I'm trying to use Go modules for everything in this demo. > > > > -- > > R. Mark Volkmann > > Object Computing, Inc. > > > > -- > > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to golang-nuts+unsubscr...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > -- R. Mark Volkmann Object Computing, Inc. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.