有没有跨平台的方式来构建发行版?

时间:2018-07-13 22:17:10

标签: perl dependency-management cpan

我正在编写CI脚本来构建位于GitHub的Perl库。

现在我这样做:

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

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

我当前方法的问题是:

  • 配置依赖项列表是手动维护的。我想使用一些自动完成的工具
  • 根据perl版本,Windows make上的
  • 可以称为gmakedmake。我想使用现有的自动检测逻辑,而不是自己动手
  • 最后,我想自动检测Makefile.PL和Build.PL,以便可以复制粘贴不同发行版的代码

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

1 个答案:

答案 0 :(得分:0)

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

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

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