2

CPAN にリリースしたいモジュールがあり、dzilを使用してパッケージ化とリリースを行うのが好きです。ただし、モジュールは外部アプリケーションに依存しているため、マシンのどこにインストールされているかはわかっていますが、マシンのどこにインストールされているかをユーザーに入力してもらいたいと思います。Perl での単体テスト中に Prompt userを読んだところ、 ExtUtils::MakeMaker::prompt がまさに私がやりたいことを実行していることがわかります。

dzil を使用する場合、どのようにそれ (または同様のもの) を組み込むことができますか?

4

3 に答える 3

2

標準のMakeMaker dzil プラグインは、基本的な Makefile.PL 以外はサポートしていません。(まあ、File::ShareDir::Install を使用できますが、それが限界です。) インストール時のより複雑な動作が必要な場合は、別のものを使用する必要があります。

MakeMaker::Customプラグインをお勧めします。ExtUtils::MakeMakerができることなら何でもできる独自の Makefile.PL を書きます。これには情報のプロンプトも含まれます。dzil前提条件などをdzil build随時追加できるため、引き続き AutoPrereqs を使用できます。(実際には、代わりにModuleBuild::Customをお勧めしますが、MakeMaker を使い続けたい場合は、それで問題ありません。)

注: また、要求している情報をコマンド ラインで指定できるようにする必要があります。これは、自動ビルド ツールを使用してディストリビューションをパッケージ化しようとしている人に役立ちます。しかし、これは MakeMaker の問題であり、Dist::Zilla の問題ではありません。

于 2012-09-24T21:55:00.477 に答える
0

The user should not be installing via Dist::Zilla at all. It is an author-tool only, as its documentation explicitly says. Dist::Zilla is meant to build a distribution that is installed via EUMM or M::B.

Edit: Given your comment, I would instead say, it sounds like your build process isn't a good candidate for using Dist::Zilla, at least consistently. I would suggest using it to build it once more and then move to using the EUMM or M::B that it builds, modify it to your purposes and keep developing that.

于 2012-09-24T14:29:45.260 に答える
0

ExtUtil::MakeMaker を使用してディストリビューションをインストールしている場合は、dzil プラグインDist::Zilla::Plugin::MakeMaker::Runnerを使用して、カスタムMakefile.PLを dist にバンドルすることができます。デフォルトのもの。

promptこれにより、必要に応じて内からカスタム情報を収集するために使用できますMakefile.PL

于 2012-09-24T15:01:22.023 に答える