coyove / goflyway

An encrypted HTTP server
MIT License
4.31k stars 654 forks source link

编译caddy时遇到 Error: cannot find module providing package #147

Closed sastation closed 5 years ago

sastation commented 5 years ago

按照 gocaddyway/readme.md 中的说明编译 caddy,在 v0.11.0-v0.11.5都能成功。当编译 v1.0.0,v1.0.1 (包括当中的 beta 版),都会报错,错误信息是: cannot load github.com/coyove/goflyway/cmd/gocaddyway: cannot find module providing package github.com/coyove/goflyway/cmd/gocaddyway

问下可能是啥原因?

coyove commented 5 years ago
  1. mholt/caddy 改名 caddyserver/caddy
  2. goflyway 不支持 go module
  3. caddy的插件引入方式变了 我做了一个叫gomod的branch,你看看应该可以build了
sastation commented 5 years ago

找到解决方法了,有两个原因。 一个是@coyove说的要把goflyway下gocaddyway/server.go中的mhotl/caddy改成 caddyserver/caddy。 另一个是由于caddy 自 v0.11.5 后的版本移除了一些文件,无法使用 go build -o caddy 直接编译,需要使用GO111MODULE=on go build -v -o caddy进行编译。而这样的话编译时不会取到goflyway最新版本而出错。解决方法是从版本 v0.11.0中把 vendor/下的文件恢复出来放到 src 相对应的上当中. vendor/github.com/lucas-clemente vendor/github.com/hashicorp vendor/golang.org/x/net/lex/