【问题标题】:go resolve (not yet) remote dependencies during development [duplicate]在开发期间解决(尚未)远程依赖项[重复]
【发布时间】:2021-02-23 21:40:20
【问题描述】:

我正在开发一个 go 模块,我们称之为github.com/spyna/mymodule

此模块是一个库,另一个 go 项目使用它,例如:github.com/spyna/goapp 使用 github.com/spyna/mymodule

在开发阶段,我不想在github.com/spyna/mymodule 中推送更改,因为它们仍在开发中,但是为了测试更改,我想使用本地版本的github.com/spyna/mymodule 作为依赖项github.com/spyna/goapp.

例如github.com/spyna/goapp中的这个文件需要github.com/spyna/mymodule

//main.go

package main

import (
    "github.com/spyna/mymodule"
)

func main() {
 mymodule.doSomething()
}


如果我运行此代码,依赖关系将被远程解析,但我想使用本地的来测试我的更改。

这在go中可以吗?

谢谢。

【问题讨论】:

    标签: go dependencies go-modules


    【解决方案1】:

    您可以在go.mod 中使用replace 指令。在你的go.mod 添加:

     replace github.com/spyna/mymodule => ../path/to/local/mymodule
    

    replace specification

    【讨论】:

    • 谢谢你,这行得通!有没有其他非手动方法可以做到这一点?我的意思是,当开发阶段完成后,我需要记住删除replace
    • 有一个命令行工具go mod edit(参见go mod help edit)可以执行这些转换。但是你必须记住回滚。 linter 可以检查 go.mod 中是否没有替换指令
    • @Spyna: 只是不要提交replace 行,所以没有什么可以回滚的。
    猜你喜欢
    • 2015-06-24
    • 1970-01-01
    • 2014-10-15
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多