有没有办法自行托管DUB注册表?

有没有办法自行托管DUB注册表?,d,dub,D,Dub,我正在为一个客户构建多个项目,他们往往有共同的代码,我已经将这些代码分解成单独的项目。我试图使用DUB来组织所有这些,但到目前为止,我还不知道如何将这些公共项目添加为依赖项,而不将它们发布到像github这样的网站上,并在DUB的公共注册表中注册它们。发布这些东西要么违反我的合同,要么将无趣的垃圾邮件放入DUB注册表(或两者兼而有之)。我有没有办法在一个私有服务器上运行我自己的DUB注册表,并让它在局域网可访问的git repos中绘制所有常见的公共项目和一些私有项目 这将使我不必制作很多git

我正在为一个客户构建多个项目,他们往往有共同的代码,我已经将这些代码分解成单独的项目。我试图使用DUB来组织所有这些,但到目前为止,我还不知道如何将这些公共项目添加为依赖项,而不将它们发布到像github这样的网站上,并在DUB的公共注册表中注册它们。发布这些东西要么违反我的合同,要么将无趣的垃圾邮件放入DUB注册表(或两者兼而有之)。我有没有办法在一个私有服务器上运行我自己的DUB注册表,并让它在局域网可访问的git repos中绘制所有常见的公共项目和一些私有项目

这将使我不必制作很多git子模块


谢谢。

通过在上使用自己的
--hostname
参数并在上提供自己的
--registry
参数,您可以自行托管dub注册表

或者,您可以在本地(或远程,如果软件包放在网络驱动器上)使用软件包。Dub wiki页面“Cookbook”解释了如何使用不在注册表中的包:

使用不在注册表中的子模块或包

通常的做法是将项目作为 主项目,或将未注册的项目用作依赖项 促进发展。在此设置中,将项目设置为依赖于 在给定路径上的项目,而不是查找存储库,可以 方便。下面是这样一个包的示例:

{
“名称”:“德朗组织”,
“依赖项”:{
“libddoc”:{“路径”:“/libddoc”},
“libdparse”:{“路径”:“/libdparse”}
}
}

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

dub添加本地myrepo
配音列表


我不知道那个特殊的“依赖项”结构(我目前正在使用“子包”和“依赖项”中的“main:subproject”符号),我也不知道addlocal,所以这是一个很好的信息。不幸的是,它没有回答这个问题,也没有解决这个问题:我真的更喜欢私有注册表,因为我试图避免git子模块和同一LAN上的其他开发人员需要访问相同的包列表。不过,我怀疑这让我更接近了:也许在网络文件共享上使用addlocal就可以做到这一点。还有更好的方法吗?还有git子树-与git子模块相比,所有源代码都是存储的…如果您真的需要,您可以尝试在dub上使用
--registry
参数,并使用自己的
--hostname
参数托管dub注册表。我不知道dub注册表包!下一步是寻找--registry选项,所以这也是新的。谢谢在我的例子中,我刚刚使用“dub add path”使其工作。不需要git子模块或子树(如果dub不能做到这一点,我可能会使用子树)。John,请编辑您的答案以包括这些方法((1)使用网络共享添加路径和(2)dub registry,--registry,--hostname)?我觉得在那之后接受答案是对的。当然,给你