为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以使用“go mod tidy”来清除除间接依赖项之外未使用的依赖项?

是否可以使用“go mod tidy”来清除除间接依赖项之外未使用的依赖项?

Go
元芳怎么了 2022-08-09 20:36:28
我知道这是通过删除不必要的依赖关系树来修剪依赖关系树的预期行为,但我的CI的一部分用于生成swagger文件。所以,最后。 将从文件中删除包,因为它们被列为(它们不是直接从源代码中使用的)。是否有解决方法?go mod tidygo-swaggerJSONgo mod tidygo-swaggergo.mod//indirect这是我的文件:go.mod...require (    github.com/go-openapi/errors v0.20.0 // indirect    github.com/go-openapi/validate v0.20.2 // indirect    github.com/go-swagger/go-swagger v0.26.1 // indirect    github.com/gorilla/mux v1.8.0    github.com/mailru/easyjson v0.7.7 // indirect    github.com/spf13/afero v1.5.1 // indirect    golang.org/x/mod v0.4.1 // indirect    golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d // indirect    golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43 // indirect    golang.org/x/tools v0.1.0 // indirect)在我运行之后,只剩下这个:go mod tidy    github.com/gorilla/mux v1.8.0但是,我在生产环境中运行的Makefile上有以下目标:$ swagger generate spec -o ./internal/ui/swagger.json我有点想避免在运行后显式调用全局。你们对如何解决这个问题有什么建议吗?go getgo-swaggergo tidy
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

我怀疑一种解决方法是:

  • 在其中一个项目源 .go 文件中显式导入包github.com/go-swagger/go-swagger/scan

  • 定义虚拟变量

    var _ = scan.Parse

这样,您的来源将直接“使用”,这将不再通过去mod tidy修剪。github.com/go-swagger/go-swagger

我会在名为 的go文件中这样做,只是为了记住为什么需要这个假导入。externalTools.go


查看完整回答
反对 回复 2022-08-09
?
炎炎设计

TA贡献1808条经验 获得超4个赞

使用 go install 来安装 swagger 而不影响 go.mod。


在你有一个单独的目标,安装swagger deps,然后运行它。我们的安排如下:Makefile


ROOT := $(PWD)

DIST := ${ROOT}/dist


# Could be /go or ${HOME}/go depending on build environment

export GOPATH := ${ROOT}/go


.PHONY: swagger


all: $(DIST)/app swagger


swagger: $(GOPATH)

    go install -v github.com/go-swagger/go-swagger/cmd/swagger@latest

    $(GOPATH)/bin/swagger version

    $(GOPATH)/bin/swagger generate spec -o ./swagger-ui/swagger.json -m


$(DIST)/app: $(DIST) $(GOPATH)

    go build -v -o $(DIST)/app ./cmd/...


$(DIST):

    mkdir -p $(DIST)


$(GOPATH):

    mkdir -p $(GOPATH)


查看完整回答
反对 回复 2022-08-09
  • 2 回答
  • 0 关注
  • 261 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号