登录
首页 >  Golang >  Go问答

go 模块是否提供了类似于 Maven 作用域的机制?

来源:stackoverflow

时间:2024-04-05 12:36:34 339浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《go 模块是否提供了类似于 Maven 作用域的机制?》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

话说我正在开发一个系统A的插件p,那么p在开发和测试时自然就依赖于A

但是,一旦 pA 集成,这种依赖关系就不再需要了。在 Maven 中,可以使用 provided 范围声明依赖关系,以避免不必要的版本冲突。

如何在 go 模块中实现这一点?


解决方案


不,事实并非如此。但这不是什么大问题。假设您有 foo_test.go,其中包含 foo/bar/baz 的依赖项。现在,此依赖项将仅将 linked 动态编译到测试二进制文件 go test 中。它不会包含在“主”二进制文件中。

这是 Go 的一个优点 - 编译器识别需要链接的内容并使用 Go 模块,他有一份材料清单,不仅按名称定义了所需的依赖项,而且还详细定义了提交。

正如所写,go.mod 的内容更像是处理项目时在某个时刻需要的材料清单,而不是像构建 fat JAR 的一组说明。

旁注:即使是 Maven 依赖项通常也不会进入生成的 JAR。 Spring Boot 会这样做,但这不是默认的 Maven 行为; skinny JARs号楼是。

终于介绍完啦!小伙伴们,这篇关于《go 模块是否提供了类似于 Maven 作用域的机制?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>