是否有一种跨平台的方式来构建分发



我正在编写一个CI脚本,以在GitHub上构建一个Perl库。

现在我是这样做的:

cpanp i Module::Install # and other configure dependencies  
perl Makefile.PL
make dist
cpanp i Foo-Bar-6.66.tar.gz
  • 我想为我构建的所有依赖项创建一个标准杆数包。这就是我使用cpanp的原因
  • cpanm .不同,cpanp i .有缺陷,并且使用目录名称来命名分发,这是不正确的。这就是我使用make-dist步骤的原因

当然,只要建立了我的PAR,我就可以使用其他东西。有https://metacpan.org/pod/PAR::Dist#blib_to_par该函数原则上可以在任何其他构建过程中调用。

我目前的方法的问题是:

  • 配置依赖项列表是手动维护的。我想用一些自动的工具
  • 在Windows上,CCD_ 3可以被称为CCD_ 4或CCD_。我想使用现有的自动检测逻辑,而不是滚动自己的
  • 最后,我想自动检测Makefile.PL与Build.PL,这样我就可以复制粘贴不同发行版的代码

我的问题是:有没有任何方法可以通过使用cpanp(这种方法可以解决我的问题(或任何其他适用于不同版本的Windows Perl并构建依赖项的标准杆数分发来构建分发的本地源?

我自己设法找到了解决方案。

  1. CPANPLUS除了cpanp之外还附带了另一个名为cpan2dist的工具。cpan2dist --archive Foo-Bar-6.66.tar.gz按预期工作——它构建依赖关系和当前tarball的分布,并像cpanp那样自动检测必要的构建工具。

  2. 要确定真正的make,可以使用CPANPLUS::Config->new->get_prog('make')。它再次使用与CPANPLUS相同的自动检测逻辑,因此它非常健壮。

相关内容

最新更新