I see though that "go mode edit" really wants there to be a dot in the
first part of the import path.
Where can I read about that requirement?

On Fri, Oct 19, 2018 at 6:30 PM Mark Volkmann <r.mark.volkm...@gmail.com>
wrote:

> 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.
>


-- 
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