通过go get命令无法正确加载xsd-makepkg软件包

时间:2020-01-23 01:29:01

标签: go

$ go get -u github.com/metaleap/go-xsd/xsd-makepkg 

/home/mypc/go/src/github.com/metaleap/go-util/fs/watcher-default.go:32:22: undefined: fsnotify.FileEvent
/home/mypc/go/src/github.com/metaleap/go-util/fs/watcher-default.go:64:35: undefined: fsnotify.FileEvent
/home/mypc/go/src/github.com/metaleap/go-util/fs/watcher-default.go:72:44: undefined: fsnotify.FileEvent
/home/mypc/go/src/github.com/metaleap/go-util/fs/watcher-default.go:79:18: me.Event undefined (type *Watcher has no field or method Event)
/home/mypc/go/src/github.com/metaleap/go-util/fs/watcher-default.go:83:21: cannot assign type func(<T>) to onEvt (type func(<T>)) in range
/home/mypc/go/src/github.com/metaleap/go-util/fs/watcher-default.go:97:18: me.Error undefined (type *Watcher has no field or method Error)
/home/mypc/go/src/github.com/metaleap/go-util/fs/watcher-default.go:119:15: me.Watch undefined (type *Watcher has no field or method Watch)

1 个答案:

答案 0 :(得分:0)

github.com/metaleap/go-xsd为"stale since 2013",因此不必太惊讶,它不再起作用。如果您检查github,您将看到注释“立即维护:如果遇到问题,请尝试使用fork。link

在这种情况下,出现错误的原因是github.com/metaleap/go-xsd/xsd-makepkg使用https://github.com/metaleap/go-utilgo-util导入github.com/go-forks/fsnotify,并在watcher-default.go中的第32行尝试使用OnEvent []func(evt *fsnotify.FileEvent)。不幸的是,自go-util发布以来,fsnotify软件包已经更新,而不再FileEvent(2014年左右被删除)。

我建议您找到替代包装。如果您真的想使用此版本,则可以检索fsnotify的早期(1.0之前)版本(但我不建议您这样做,因为从那时起可能已经进行了很多修复)。

注意:使用go模块的更现代的软件包不应受到此问题的困扰(因为可以将依赖项锁定到特定版本)。