カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

Plaggerで@INC以外から認識したプラグインを継承する際の注意

概要: Plaggerで@INC以外から認識して読み込んでいないプラグインを継承する際の注意。


Plaggerの設定のglobalplugin_pathから認識したプラグインを継承する時の注意なんだけど、 plugin_pathから認識したプラグインは読み込まない限り、継承できなかったりする。

Plaggerの挙動としては、plugin_pathにあるプラグインは認識するだけで、 pluginsrecipesで使用しない場合は実際には読み込んでないらしい。

そのためplugin_pathから認識したプラグインを継承しようとすると、 パッケージは空ですみたいなエラーが出る。

これを回避するにはプラグインを@INC以下に置くか、 configを空にしてプラグインを読み込むように指定するかどっちかだと思う。

前者の場合、ディレクトリ作るだけで問題なさそうだけど、 後者の場合、プラグインによっては問題が出るかもしれない。

まあ、この問題はplugin_path以下に配置してあるプラグインを継承するときにしか起きないので、 そうたいしたことではないかも。

要は、継承する対象のプラグインを読み込めばいいだけの話なので、ruleexpressionで指定したり、 pluginsconfig空にして読み込むようにすればいいと思う。

若干特殊な状況でこういうことが起きますよ、と言うことで。