0

尝试godoc在一个简单的平面代码文件夹上提供服务。在线文档没有解释如何实现这个简单的任务。

所以,创建这个简单的结构,

/tmp/testgodoc$ tree
.
└── src
    ├── main  (just the binary)
    └── main.go

1 directory, 2 files

main.go 很简单

/tmp/testgodoc$ cat src/main.go
// Hello godoc
package main

import "fmt"

// Say Hello
func main() {
    fmt.Println("Hello")
}

在 GOPATH 或模块模式下运行时,在浏览器中打开 localhost:6060 不会给出记录当前文件夹的预期结果。

在模块模式下运行会给出以下输出和结果:

/tmp/testgodoc$ ~/go/bin/godoc  -goroot=. -http=:6060
using module mode; GOMOD=/dev/null
(when Ctrl-C:) cannot find package "." in:
        /src/main
^C

模块模式结果

并且在 GOPATH 模式下运行似乎指向本地标准库:

/tmp/testgodoc$ GO111MODULE=off ~/go/bin/godoc  -goroot=. -http=:6060
using GOPATH mode
^C

GOPATH 模式结果

4

1 回答 1

1

你应该把你的主包放到一个子目录中,可能是这样的:

~/go/src/testGoDoc$ tree
├── cmd
│   └── main.go
├── go.mod
└── pkg
    └── test1
        └── test_package.go

通过这个你可以运行这两个命令:

godoc -http=:6060 #http://localhost:6060/pkg/<module name inside go.mod>/

GO111MODULE=off godoc -http=:6060 #http://localhost:6060/pkg/testGoDoc/
于 2021-12-29T18:42:20.570 回答