我有一个名为
mymodule
的 Go 模块,我想将其重命名为 github.com/hylowaker/awesome-module
使用命令
go mod edit -module github.com/hylowaker/awesome-module
仅更改go.mod
文件中的模块名称,保持go源不变。我尝试了 GoLand IDE 中的 Refactor 功能,但 GoLand 不允许使用斜杠(/
)字符重命名。
所以我必须从源文件中找到每个
import "mymodule/..."
并将其替换为 import "github.com/hylowaker/awesome-module/...
。
有更好的方法来重构它们吗?
此功能在 GoLand 2021.1 版本中引入。
您可以通过在
Shift+F6
文件中的模块名称上按 go.mod
来调用重命名重构。
在 GoLand 中只需按 Ctrl+Shift+R 并执行“在路径中替换”
在整个项目中执行此操作是安全的,因为您只需要更改 go.mod 文件和所有导入子句
在 Go 项目目录中运行此命令,将
CUR
设置为当前名称,将 NEW
设置为您希望更改为的新名称。
#!/usr/bin/env sh
export CUR="CHANGE THIS" # example: github.com/user/old-lame-name
export NEW="CHANGE THIS" # example: github.com/user/new-super-cool-name
go mod edit -module ${NEW}
find . -type f -name '*.go' -exec perl -pi -e 's/$ENV{CUR}/$ENV{NEW}/g' {} \;
来源和来源这里。