我正在编写CI脚本来构建位于GitHub的Perl库。
现在我这样做:
cpanp i Module::Install # and other configure dependencies
perl Makefile.PL
make dist
cpanp i Foo-Bar-6.66.tar.gz
cpanm .
不同,cpanp i .
有问题,并使用目录名称来命名分发,这是不正确的。这就是为什么我使用此make dist步骤。当然,只要建立了我的PAR,我就可以使用其他东西。有https://metacpan.org/pod/PAR::Dist#blib_to_par函数,原则上可以在任何其他构建过程中调用。
我当前方法的问题是:
make
上的gmake
或dmake
。我想使用现有的自动检测逻辑,而不是自己动手我的问题是:是否可以通过使用cpanp(这种方式可以解决我的问题)或以任何其他适用于Windows Perl不同版本并构建依赖项的PAR分发的方式来构建分发的本地源?
答案 0 :(得分:0)
我设法自己找到了解决方案。
CPANPLUS除了cpanp
之外还提供了另一个名为cpan2dist
的工具。 cpan2dist --archive Foo-Bar-6.66.tar.gz
按预期方式工作-它构建依赖关系和当前tarball的分布,并像cpanp
那样自动检测必要的构建工具。
要确定真实的make
,可以使用CPANPLUS::Config->new->get_prog('make')
。它再次使用与CPANPLUS
相同的自动检测逻辑,因此非常健壮。