在Golang中,我们可以将GitHub上的开源库指定为依赖项。例如:
import "github.com/RichardKnop/somelibrary"
如果我理解正确,这将尝试根据您的Go版本查找分支,默认为master。
因此,无法导入依赖的特定版本,例如:
import "github.com/RichardKnop/somelibrary#v1.4.8"
那么,在Go中管理依赖项的最佳实践是什么?
我可以看到两种方法。
是否为具有重大变更的主要版本创建新模块?
例如,我的Go库可以定义模块v1和v2,因此您可以执行以下操作:
import "github.com/RichardKnop/somelibrary/v1"
要么:
import "github.com/RichardKnop/somelibrary/v2"
根据您的需要。必须对v1或v2进行任何更改,以免破坏任何API或正常工作的功能。
这样可以完全控制Go代码所需的外部依赖版本。
例如,您可以将github.com/RichardKnop/somelibrary分支到您自己的GitHub帐户中,然后在您的代码中执行以下操作:
import "github.com/ForkingUser/somelibrary"
然后,您将不得不分叉所有外部依赖项,这似乎有些过大。但是,它将完全控制版本。您可以将fork保持在您正在使用代码的版本上,并且仅在检查新版本的依赖项不会破坏任何内容后才更新fork。
有什么想法吗?
注意:2015年6月,Go 1.5中首次提供了对卖家的支持!
参见c / 10923 /:
当
GO15VENDOREXPERIMENT=1
在环境中,这种CL变化的根据围棋1.5供应商建议的进口路径的分辨率:
- 如果存在源目录
d/vendor
,则在以开头的子树中编译源文件时d
,import "p"
将其解释为import "d/vendor/p"
存在。- 如果有多种可能的解决方案,则以最具体(最长)的路径为准。
- 必须始终使用简写形式:任何导入路径都不能
/vendor/
明确包含“ ”。- 供应商软件包中的导入注释将被忽略。
2016年1月更新:Go 1.6将使供应商成为默认供应商。
如文章“使用GO15VENDOREXPERIMENT现在可以使用更便宜的工具”中所述:
1.6提供了
/vendor/
对大多数工具(例如oracle)的支持;使用Beta来重建它们。
goimports
,且有CL是可以精挑细选
依赖管理实战 在前面我们学习了怎么使用Jetty插件来使用自带的Jetty容器来部署一个TODo应用,Jetty是一个轻量级的开发容器,启动非常快。很多企业级的应用都使用其他的Web容器来部署应用,假设你使用的是Apache Tomcat。
When you want to add, upgrade, or remove dependencies there are a couple of different commands you need to know. Each command will automatically update your package.json and yarn.lock files. Adding a
简介 在第三章我们在构建To Do应用的时候学习到了怎么声明对Servlet ApI的依赖,Gradle的领域特定语言使得声明依赖和仓库变得很简单,你只需要在dependencies脚本中声明你所依赖的库,然后你需要告诉构建系统要从哪个仓库里下载依赖。提供了这两个信息,Gradle就能自动解析、下载依赖到你的电脑上,如果有需要会存储在本地缓存中必备以后需要。 这一章我们将介绍Gradle对依赖管理
PHP 有很多可供使用的库、框架和组件。通常你的项目都会使用到其中的若干项 - 这些就是项目的依赖。直到最近,PHP 也没有一个很好的方式来管理这些项目依赖。即使你通过手动的方式去管理,你依然会为自动加载器而担心。但现在这已经不再是问题了。 目前 PHP 有两个使用较多的包管理系统 - Composer 和 PEAR。Composer 是 PHP 所使用的最流行的包管理器,然而在很长的一段时间里,
在San CLI UI中,可直接进行项目插件和依赖的安装、更新、卸载、删除等操作,依赖管理和插件管理的核心是npm包的安装可视化操作,好处是: npm install的可视化管理,组件升级更直观 操作简单,快速引入依赖 CLI的插件集合,更容易发现新包,提升检索效率 依赖管理 在依赖管理中,可以查看项目已安装的依赖列表,也可以在上方的搜索框中搜索项目已安装的依赖,然后更新或卸载它们。 安装依赖 点
SOFABoot 是在 Spring Boot 的基础上提供的功能扩展。基于 Spring Boot 的机制,SOFABoot 管理了 SOFA 中间件的依赖,并且提供了 Spring Boot 的 Starter,方便用户在 Spring Boot 中使用 SOFA 中间件。 SOFABoot 依赖管理 – Maven 在使用 SOFA 中间件之前,需要引入 SOFABoot 依赖管理。类似 S