Golang导入按包分组

Jos*_*son 3 go

我看到Go具有goimports来帮助进行导入分组,但是我想知道是否有人创建了一个软件包来按某种模式对导入分组。

Go import通过强制执行至少两个组stdlib和其他所有操作来做到这一点。但是,我公司的政策是将进口分为4组

import (
    stdlib

    current_project

    company

    all others 
)
Run Code Online (Sandbox Code Playgroud)

有没有可以自动执行此操作的工具?

Dmy*_*tov 21

如果使用 GoLand,则可以在设置中调整排序:

\n

在此输入图像描述

\n

注意 \xe2\x80\x9cGroup stdimports\xe2\x80\x9d 和 \xe2\x80\x9cMove all stdimports in a single group\xe2\x80\x9d 复选框。

\n


kos*_*tya 6

最新版本的goimports支持-local标志。引用此提交消息

例如,跑步goimports -local example.com/可能会产生

import (
    "database/sql"
    "io"
    "strconv"

    "golang.org/x/net/context"

    "example.com/foo/bar"
    "example.com/foo/baz"
)
Run Code Online (Sandbox Code Playgroud)

  • 安装: go get golang.org/x/tools/cmd/goimports 选项: goimports -h 示例: goimports -w -local "companyrepos/" 。其中 -w 更新源文件和 . 指当前目录路径 (2认同)

Via*_*mak 5

我也尝试找到正确的答案,直到我自己解决了这个问题......你可以尝试这个工具来对 Golang 导入进行排序: https: //github.com/incu6us/goimports-reviser

它将对您的导入进行排序并将其分为 3-4 组。此外,使用-local- 选项,您可以将公司的库设置为分类到单独的组中。