2017-06-21 86 views
3

我正在为一个客户建立多个项目,他们倾向于将通用代码分解为单独的项目。我正在尝试使用DUB来组织所有这些,但到目前为止,我无法弄清楚如何将这些常见项目添加为依赖项,而无需将它们发布到像github这样的站点上,并将它们注册到DUB的公共注册表中。发布这些东西可能会违反我的合同,或者将不感兴趣的垃圾邮件放入DUB注册表中(或两者兼而有之)。有没有什么办法可以在私人服务器上操作我自己的DUB注册表,并且让它可以在所有通常的公共项目以及局域网可访问的git仓库中的少数私人项目中进行图形化绘制?有没有办法自主托管DUB注册表?

这将使我无需制作大量的git子模块。 :)

谢谢。

回答

1

您可以自己托管配音注册表,方法是使用您自己的--hostname参数dub-registry并在dub上提供您自己的--registry参数。

或者,您可以在本地使用软件包(或者如果软件包放置在网络驱动器上,则可以远程使用)。配音wiki页面“食谱”介绍了如何使用不在注册表封装工作:https://github.com/dlang/dub/wiki/Cookbook#working-with-submodules-or-packages-that-are-not-in-the-registry

与子模块或不在注册表

产品包是一种常见的做法是要么有一个项目作为主项目的 的git子模块,或者将未注册的项目用作依赖关系 进行开发。在此设置中,将项目设置为取决于给定路径上的 项目,而不是查找存储库,可以使用 。这里有这样一个包的例子:

{ "name": "dlang-org", "dependencies": { "libddoc": { "path": "./libddoc" }, "libdparse": { "path": "./libdparse" } } }

另一种可能性是添加本地包。在开发过程中,当您想使用该软件包测试包含一些 库的软件包时,这是特别有用的 。

dub add-local myrepo dub list

+0

我不知道的那个特定的“依赖”的结构(我目前与“子包”和“主:子项目”打的“依赖性”符号),我不意识到添加本地,所以这是很好的信息。不幸的是,它不回答问题或解决问题:我真的更喜欢私人注册表,因为我试图避免git子模块和其他在同一局域网上的开发人员需要访问相同的软件包列表。我怀疑它让我更接近:尽管在网络文件共享上使用add-local就可以做到这一点。有没有更好的办法? – chadjoan

+0

还有git子树 - 与git子模块相比,所有源都存储在... – greenify

+1

那么你可以尝试在配音上使用'--registry'参数并使用你自己的'--hostname'参数托管配音注册表,如果你真的需要。 –

相关问题