【问题标题】:How do I refactor module name in Go?如何在 Go 中重构模块名称?
【发布时间】:2021-04-12 10:43:38
【问题描述】:

我有一个名为 mymodule 的 Go 模块,我想将其重命名为 github.com/hylowaker/awesome-module

使用命令go mod edit -module github.com/hylowaker/awesome-module 只会更改go.mod 文件中的模块名称,而保持go 源不变。我在 GoLand IDE 中尝试了重构功能,但 GoLand 不允许使用斜杠(/)字符重命名。

所以我必须从我的源文件中找到每个import "mymodule/..." 并将其替换为import "github.com/hylowaker/awesome-module/...

有没有更好的重构方法?

【问题讨论】:

  • 这可能是一个愚蠢的评论,但是一旦你在 go.mod 中编辑了它,查找和替换就不会起作用吗?您可以轻松地在 Sublime 或 VSCode 或 Goland 中跨项目进行查找和替换。
  • @Kartavya 我同意 find&replace 在大多数情况下就足够了,但由于它也可能错误地替换注释或字符串,我一直在寻找更安全有效的方法。

标签: go refactoring go-modules


【解决方案1】:

GoLand 版本 2021.1 中引入了此功能。

您可以通过在 go.mod 文件中的模块名称上按 Shift+F6 来调用重命名重构。

【讨论】:

    【解决方案2】:

    在 GoLand 中只需按 Ctrl+Shift+R 并执行“替换路径”

    在整个项目中执行该操作是安全的,因为您只需要更改 go.mod 文件和所有导入子句

    【讨论】:

    • 很好,在 MacOS 上是cmd+shift+r
    猜你喜欢
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    相关资源
    最近更新 更多