windows 使用 go-revel 问题

最近在项目中用到了revel框架进行golang开发,项目框架按照revel的标准定义进行开发,使用了vendor进行依赖管理,结果在使用revel run编译项目的时候,revel自动生成的tmp/main.go中,依赖的revel路径不对,多了项目前缀,不是以github开始,导致不能正常编译,无法启动,而且这个main.go是自动生成的,修改了每次还是会自动生成。但发现同事的电脑上没问题,他时linux系统,估计和系统有关,后面查看revel的源码,果不其然,revel在自动生成文件时,对于vendor的依赖,没有考虑到系统问题。

revel/cmd/harness/reflect.go中,处理vendor中依赖的路径时,用的硬编码/vendor/,太可怕了

if vendorIdx := strings.Index(root, "/vendor/") ; vendorIdx != -1 {
    return filepath.ToSlash(root[vendorIdx+8:])
}

修改后再次instal revel,执行就OK了,目前github上没有兼容,后面有时间提个MR

if vendorIdx := strings.Index(root, filepath.FromSlash("/vendor/")) ; vendorIdx != -1 {
    return filepath.ToSlash(root[vendorIdx+8:])
}

你可能感兴趣的:(windows 使用 go-revel 问题)