我想保持我的go.mod
依赖关系为最新。使用Node.js,我运行npm outdated
(及更高版本npm update
)。
Go mod最接近的是什么?
理想情况下,我会看到有关项目的过时依赖关系的报告(并非全部都是递归的)。谢谢
Go 1.11模块:如何升级和降级依赖项 Wiki中对此进行了详细说明:
要查看所有直接和间接依赖项的可用次要和补丁升级,请运行
go list -u -m all
。要将当前模块的所有直接和间接依赖关系升级到最新版本,请执行以下操作:
- 运行
go get -u
以使用最新的次要版本或修补程序版本- 运行
go get -u=patch
以使用最新的修补程序版本
您可以在此处阅读更多详细信息:命令转到:列出软件包或模块。
还有一个第三方应用程序:https :
//github.com/psampaz/go-mod-outdated:
查找Go项目过时依赖项的简单方法。go-mod-outdated提供了go list -u -m -json
all命令的表格视图,该命令列出了Go项目的所有依赖关系及其可用的次要和补丁更新。它还提供了一种过滤间接依赖关系和无需更新的依赖关系的方法。
如果您对间接依赖项不感兴趣,我们可以将其过滤掉。没有用于过滤间接依赖关系的标志,但是我们可以使用自定义输出格式来做到这一点。
该
-f
标志使用包模板的语法为列表指定备用格式。
因此,您可以指定格式为模板文档,并遵循text/template
。
列出模块时,该
-f
标志仍然指定应用于Go结构的格式模板,但现在指定为Module
结构:
> type Module struct {
> Path string // module path
> Version string // module version
> Versions []string // available module versions (with -versions)
> Replace *Module // replaced by this module
> Time *time.Time // time version was created
> Update *Module // available update, if any (with -u)
> Main bool // is this the main module?
> Indirect bool // is this module only an indirect dependency
> of main module?
> Dir string // directory holding files for this module, if
> any
> GoMod string // path to go.mod file for this module, if any
> Error *ModuleError // error loading module
> }
>
> type ModuleError struct {
> Err string // the error itself
> }
注意:此Module
结构是在go命令的内部软件包中定义的:https
:
//godoc.org/cmd/go/internal/modinfo
因此,例如,像以前一样列出直接和间接依赖关系,但现在也可以IAMINDIRECT
在间接依赖关系后面附加一个单词,可以这样完成:
go list -u -m -f '{{.}}{{if .Indirect}} IAMINDIRECT{{end}}' all
否定逻辑,以列出直接和间接依赖关系,但是这次仅用以下方式“标记”直接依赖关系IAMDIRECT
:
go list -u -m -f '{{.}}{{if not .Indirect}} IAMDIRECT{{end}}' all
而且我们快到了。现在,我们只需要过滤掉不包含IAMDIRECT
单词的行:
go list -u -m -f '{{.}}{{if not .Indirect}} IAMDIRECT{{end}}' all | grep IAMDIRECT
上面的解决方案基于grep
命令。但实际上我们不需要。如果指定的模板导致空文档,则从输出中跳过该行。
这样我们就可以实现以下目的:
go list -u -m -f '{{if not .Indirect}}{{.}}{{end}}' all
基本上,我们仅Module.String()
在不是间接的情况下才调用(仅包含依赖项)。作为一项额外收益,该解决方案也可以在Windows上使用。
同样,我们如何过滤掉间接依赖关系,这也是“小菜一碟”,因为该Module
结构包含一个Update
具有更新的包/模块的字段:
go list -u -m -f '{{if .Update}}{{.}}{{end}}' all
问题内容: 在TSQL中,我可以声明: 在MySQL中,我无法编写相同的查询。 在MySQL中编写此查询的正确方法是什么? 问题答案: 行尾的分号。
问题内容: 我有以下代码,该代码将字符串作为输入,并转换为UNIX时间戳。我想在golang中做同样的事情,但我无法识别将在Go中提供等效于DateTimeOffset结构的结构或函数。 例如: 输入:635804753769100000 输出:1444878577 UTC对应时间:10/15/2015 3:09:36 AM +00:00 有人可以帮我解决这个问题,以获得上述结果。 谢谢 问题答案
问题内容: LINQ的Java等效项是什么? 问题答案: 现在使用Java 8向我们介绍了Stream API,这在处理集合时是类似的事情,但与Linq不太一样。 如果它是您正在寻找的ORM,例如Entity Framework,那么您可以尝试Hibernate
问题内容: 在C / C ++(以及该家族的许多语言)中,根据条件声明和初始化变量的常用习语使用三元条件运算符: Go没有条件运算符。实现与上述相同代码的最惯用方式是什么?我来到以下解决方案,但似乎很冗长 有更好的东西吗? 问题答案: 正如指出的那样(并希望毫不奇怪),使用确实是Go 语言中进行条件处理的惯用方式。 但是,除了完整的代码块之外,还经常使用以下拼写: 并且如果您有足够重复的代码块(例
问题内容: 有Swift的等效项吗?在中,我们通常使用: 如何在Swift中实现相同目标?我发现了一个功能: 但是,它很长,根本不方便。 问题答案: 将在斯威夫特的世界同样存在。 的,和参数均标有 该装置的同时调用该函数我们可以忽略这些参数的关键字。在这种情况下,将使用其默认值。 这得出一个结论,该方法调用可以简化为: Swift 5- 没什么变化,仍然可以这样工作。
问题内容: 在Objective-C中,我使用以下代码删除所有子视图: 但是如何迅速使用它呢?我看到苹果文档迅速使用了该方法 但是当我尝试它时,出现错误: 有什么方法可以快速删除子视图? 问题答案: 已针对Swift 2.0(Xcode 7)更新 用途: 或像这样: