Пробую модули Go. Мой проект требует libarary golang.org/x/net/html
, поэтому я определил этот go.mod
файл:
module github.com/patrickbucher/prettyprint
require golang.org/x/net/html
И написал эту демонстрационную программу, чтобы проверить, загружается ли зависимость при компиляции:
package main
import (
"fmt"
"log"
"os"
"golang.org/x/net/html"
)
func main() {
doc, err := html.Parse(os.Stdin)
if err != nil {
log.Fatal(err)
}
fmt.Println(doc)
}
Когда я запускаю go build, я получаю следующее сообщение об ошибке:
go: errors parsing go.mod:
~/prettyprint/go.mod:3: usage: require module/path v1.2.3
Очевидно, я пропустил номер версии. Но какой взять? Я наткнулся на статью под названием Takig Go Modules for a Spin, где я нашел пример go.mod
файла, содержащего ссылки на golang.org/x
пакеты:
module github.com/davecheney/httpstat
require (
github.com/fatih/color v1.5.0
github.com/mattn/go-colorable v0.0.9
github.com/mattn/go-isatty v0.0.3
golang.org/x/net v0.0.0-20170922011244-0744d001aa84
golang.org/x/sys v0.0.0-20170922123423-429f518978ab
golang.org/x/text v0.0.0-20170915090833-1cbadb444a80
)
Автор использует строки версии, такие как v0.0.0-20170922011244-0744d001aa84
, состоящие из индикации semver v0.0.0, отметки времени и чего-то похожего на идентификатор фиксации git.
Как мне выяснить эти строки версии? Я предполагаю, что в какой-то момент эти golang.org/x
пакеты будут версироваться в соответствии с семантическим управлением версиями, но для того, чтобы действительно попробовать go mod
, мне нужно выяснить эти go mod
сейчас.