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.

Reply via email to