Perl 定义托管在git repo上的所需模块

Perl 定义托管在git repo上的所需模块,perl,perl-module,Perl,Perl Module,我将我的私有(不在CPAN上共享)perl模块托管在,所以我可以通过运行命令:cpanm在远程主机上安装它们https://gitlab.com/xxx/My-Module.git。它很好用。但是,如果我的私有模块在某些其他私有模块中具有依赖关系,该怎么办Build.PL如下所示: use Module::Build; Module::Build->new( module_name => 'My::Module', dist_abstract => '-',

我将我的私有(不在CPAN上共享)perl模块托管在,所以我可以通过运行命令:
cpanm在远程主机上安装它们https://gitlab.com/xxx/My-Module.git
。它很好用。但是,如果我的私有模块在某些其他私有模块中具有依赖关系,该怎么办<代码>Build.PL如下所示:

use Module::Build;
Module::Build->new(
    module_name   => 'My::Module',
    dist_abstract => '-',
    requires      =>
    {
        'My::OtherModule' => 0,
        'Moo'             => 0,
    }
)->create_build_script;

有没有办法为
My::OtherModule
声明GIT url?

您看过MyConfig.pm或CPAN Shell中使用的“o conf”命令吗?“perl-MCPAN-eshell”,这就是如何声明repo URL的方法。我想这就是你想要的。否则,请提供更多信息。据我所知,你指的是类似CPAN(私人、自托管)的回购。我在询问GIT repos,如gitlab.com、github.com等。上次我尝试这样做时,cpanm可以从GIT安装,但不能处理GIT依赖项(因为CPAN元数据根本不支持这一点)。到目前为止,我发现的不需要额外工具(pinto、个人存储库等)的最佳解决方案是将所有依赖项/git URL以
requirements.txt
文件的形式列出,每行一项,然后通过
cpanm安装deps。这些参数用于为CPAN创建元文件。在CPAN元文件中提到私有模块是没有意义的。@ikegami:你完全正确。但是
cpanm
需要这个“CPAN元文件”,才能从非CPAN位置(如GIT-repo)成功安装模块。只是做cpanm非常简单git@gitlab.com:user/My Module.git
并下载、构建、测试和安装此模块。这很简单,很有效。至少只要这些非CPAN模块不需要其他非CPAN模块;)。