モジュールを作成するためにperlモジュールModule::Buildを研究しています。すべての *.pm ファイルのデフォルト ディレクトリ (lib/) をカスタム ディレクトリに変更する方法があるかどうかを知る必要があります。たとえば、デフォルトでは *.pm ファイルのソース ディレクトリは「lib/directory」ですが、「home//pm/」に変更してそこからコピーしたいと考えています。
daximのコメントの後に編集:
私のディレクトリ構造は次のとおりです。
home/user/workspace/try_ModuleBuild/LIBS/perl/Private/DB.pm
home/user/workspace/try_ModuleBuild/RELEASE/ModuleBuild/Build.PL
home/user/workspace/try_ModuleBuild/RELEASE/ModuleBuild/lib/API.pm
home/user/workspace/try_ModuleBuild/RELEASE/ModuleBuild/RESOURCES/prepare/form.html
すべてのファイルが空です。私のBuild.PLには以下が含まれています:
my $self = Module::Build->new
(
module_name => “Project”,
dist_author => [“My Name”],
build_requires => {
'Test::More' => 0.98,
'TAP::Harness' => 3.23
},
dist_abstract => “Example”,
configure_requires => { 'Module::Build' => 0.40 },
requires => {'perl' => '5.14.0'},
add_to_cleanup => [ 'Project::API-*' ],
release_status => 'stable',
use_tap_harness => 1,
license => 'restrictive',
RESOURCES_files => {'RESOURCES/prepare/form.html' =>'/RESOURCES/new/prepare/form.html'},
lib_files=>{'/home/user/workspace/try_ModuleBuild/LIBS/perl/Private/DB.pm'=>'/lib/Private/DB.pm'},
install_path => {
'lib'=>'/home/user/MB/lib',
'RESOURCES'=>"/home/user/MB/RESOURCES"
},
);
$self->add_build_element('RESOURCES');
$self->add_build_element('lib');
$self->create_build_script();
問題はファイルにあります:
home/user/workspace/try_ModuleBuild/LIBS/perl/Private/DB.pm'
ディレクトリにないため:
home/user/workspace/try_ModuleBuild/RELEASE/ModuleBuild/LIBS
Build.PL はどこにありますか。
perl Build.PL
./Build manifest
./Build fakeinstall –install_base lib=/home/user/directory
fakeinstall は結果を返します
“Installing /home/user/MB/lib/Private/DB.pm“
問題なく動作します。
後
./Build dist
ただし、作成された .tar.gz ファイルに DB.pm がありません。
問題は、home/user/workspace/try_ModuleBuild/LIBS/perl/ ディレクトリからファイルを追加したいのに、home/user/workspace/try_ModuleBuild/RELEASE/ModuleBuild/ ディレクトリからしかディストリビューションにファイルを追加できないことです。