去构建事件未定义

环境:Windows 10 Professional 64 位。


我想构建/安装一个 go-project(如你所见的 twitterbeat)。


C:\apps\Go_workspace\src\github.com\buehler\twitterbeat>go build

# github.com/buehler/twitterbeat/beater

beater\twitterbeat.go:62: b.Events undefined (type *beat.Beat has no field or method Events)

在这里你可以看到文件的第 62 行:


func (bt *Twitterbeat) Setup(b *beat.Beat) error {

    logp.Info("Setup waitduration and api keys")


    bt.events = b.Events


    var err error

    bt.period, err = time.ParseDuration(*bt.beatConfig.Period)

    if err != nil {

        return err

    }


    anaconda.SetConsumerKey(*bt.beatConfig.Twitter.ConsumerKey)

    anaconda.SetConsumerSecret(*bt.beatConfig.Twitter.ConsumerSecret)

    bt.api = anaconda.NewTwitterApi(*bt.beatConfig.Twitter.AccessKey, *bt.beatConfig.Twitter.AccessSecret)


    return nil

}

我不认为代码是错误的,因为我是直接从Github 下载的。


因为我不是在 linux / unix 系统上(而且我在代理方面遇到了问题),所以我无法运行“glide”。相反,我自己下载了所有依赖项。


我可以做些什么来构建 twitterbeat?


海绵宝宝撒
浏览 150回答 2
2回答

慕码人8056858

当您手动下载依赖项时,您需要确保它们与 glide.yaml 文件中的版本相同。beat.Beatin的当前版本github.com/elastic/libbeat/beat/beat.go比 glide.yaml 中的版本新,并且不再有Events字段。

收到一只叮咚

这不是你的问题,而是你使用的库的错误。如代码所示,它使用了github.com/elastic/beats/libbeat/beat,然后我们跳转到的源代码beat,Beat结构是:type Beat struct {    Name      string               // Beat name.    Version   string               // Beat version number. Defaults to the libbeat version when an implementation does not set a version.    UUID      uuid.UUID            // ID assigned to a Beat instance.    BT        Beater               // Beater implementation.    RawConfig *common.Config       // Raw config that can be unpacked to get Beat specific config data.    Config    BeatConfig           // Common Beat configuration data.    Publisher *publisher.Publisher // Publisher    filters *filter.FilterList // Filters}它没有Events领域了!您可以使用旧版本的库 github.com/elastic/beats/libbeat/beat,也可以将问题推送给所有者,github.com/buehler/twitterbeat通知他修复此错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go