2012-09-24 35 views

回答

2

標準MakeMaker dzil插件除了基本的Makefile.PL外不支持其他任何東西。 (好吧,它可以使用File::ShareDir::Install,但這是它的限制。)如果您需要更復雜的安裝時間行爲,則需要使用其他內容。

我推薦我的MakeMaker::Custom插件。您可以編寫自己的Makefile.PL,它可以完成ExtUtils::MakeMaker能夠執行的任何操作,包括提示信息。您仍然可以在dzil build時間將dzil添加諸如您的先決條件之類的內容,因此您仍然可以使用AutoPrereqs。 (實際上,我建議使用ModuleBuild::Custom代替,但是如果你想堅持使用MakeMaker,那沒問題。)

注意:您還應該允許您在命令行中提供的信息。這將有助於那些試圖使用自動化構建工具打包分發的人。但這是一個MakeMaker問題,而不是Dist :: Zilla。

+0

謝謝 - 這非常有幫助,讓我指出了正確的方向:看起來像我的週末將是一個有趣的! –

0

用戶不應該通過Dist :: Zilla進行安裝。它只是一個作者工具,正如其文檔明確指出的那樣。 Dist :: Zilla旨在構建通過EUMM或M :: B安裝的分發。

編輯:給你的評論,我會反而說,這聽起來像你的構建過程不是使用Dist :: Zilla的好候選者,至少一致。我建議使用它來再次構建它,然後轉向使用它構建的EUMM或M :: B,將其修改爲您的目的並繼續開發。

+0

我正在用dzil編譯發佈。用戶沒有使用它來安裝軟件包。 –

+0

生成一個Makefile.PL可能是dzil爲你做的最重要的事情。自動化發佈過程(所以你不會犯愚蠢的錯誤,如忘記在上傳之前運行測試)是一個更大的交易。 – cjm

0

如果您使用ExtUtil :: MakeMaker來安裝您的發行版,那麼您可以使用dzil插件Dist::Zilla::Plugin::MakeMaker::Runner(這是一口)將自定義Makefile.PL與您的dist綁定,而不是生成默認的發行版。

如果您需要,可以使用promptMakefile.PL收集自定義信息。

+0

好的,所以它可能,但是這不是相當「消失」了嗎?如果你不能再使用自動生成的Makefile.PL,那麼使用標準工具似乎並不簡單,而不是(不 - )自動生成它們? –

+0

我不這麼認爲。我目前在Makefile.PL中保留了一些自定義內容,並將其轉換爲Dist :: Zilla,以利用dzil提供的所有其他內容,如perlbrew測試,git集成,PodWeaver生成等等。 – friedo

+0

如果你確實使用了這些功能,那麼你也許是對的。我沒有,所以我離開了dzil回到M :: B。 TIMTOWTDI當然:-) –

相關問題