使用Dist :: Zilla从Perl模块发行版中排除目录

时间:2019-05-16 07:34:24

标签: perl dist-zilla

我的Perl模块根目录中有一个我不想释放的子目录。

我尝试使用https://metacpan.org/pod/Dist::Zilla::Plugin::GatherDir的“ prune_directory”或“ exclude_file”属性

我尝试指定[GatherDir]部分,但是与@Basic重复,因此与此冲突,因此现在我的dist.ini中有(完整文件:https://github.com/telatin/FASTQ-Parser/blob/master/dist.ini):

[@Basic]
prune_directory = experimental

使用dzil build --verbose进行构建时,我会看到所有类似的行:

[@Basic/GatherDir] adding file experimental/scripts/my.pl

因此确实添加了我想要修剪的目录。

我该怎么办?

1 个答案:

答案 0 :(得分:4)

@Basic插件包无法将选项传递给它使用的插件。因此,您必须首先使用@Filter捆绑包将GatherDir插件从其中删除,然后再将GatherDir自己用于其他选项。

[GatherDir]
prune_directory = experimental

[@Filter]
-bundle = @Basic
-remove = GatherDir

另一种选择是使用@ConfigSlicer捆绑包直接修改@Basic使用的插件。

[@ConfigSlicer]
-bundle = @Basic
GatherDir.prune_directory[] = experimental

(在这种情况下,[]是因为通过Config :: Slicer设置多值选项需要表明它是多值。有关详细信息,请参见the docs。)

考虑@Starter捆绑包,这是@Basic的现代化版本,默认情况下允许-remove和config slicing选项,以及基于现代Dist :: Zilla的许多其他改进和选项习惯。