如何在 Go 中重构模块名称?

问题描述 投票:0回答:3

我有一个名为

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/...

有更好的方法来重构它们吗?

go refactoring go-modules
3个回答
25
投票

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

您可以通过在

Shift+F6
文件中的模块名称上按
go.mod
来调用重命名重构。


5
投票

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

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


0
投票

在 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' {} \;

来源和来源这里

© www.soinside.com 2019 - 2024. All rights reserved.