2017-03-06 1 views
0

neo4jをインストールして起動するレーキタスクがあります。名前空間とパラメータを持つタスクに依存するRakeタスクを書くにはどうすればいいですか

rake neo4j:install[community-latest, stable] 
rake neo4j:start[stable] where `stable` is environment. 

今、私はので、私は、

task :setup_dev_env => [:neo4j:install[community-latest, stable], :neo4j:start[stable]] do 
    puts "Created Rake task" 
end 

明らかにこれは動作しませんを試してみましたが、別のrakeタスクにrake setupのようなものを書いて、rake neo4j:start[stable]rake neo4j:install[community-latest, stable]

への依存を作成したいです上記のタスクneo4jは名前空間です。その後、私はそう

task :setup_dev_env => [:'neo4j:install[community-latest, stable]', :'neo4j:start[stable]'] do 
    puts "Hello rake task working" 
end 

、のようなものに自分のタスクを変更した、少なくともこれはneo4j名前空間に私の問題を解決し、それでも問題を解決することができませんでした。

私はrake setup_dev_envを実行すると、それはあなたが次のようにあなたのタスクを書くことができ

rake aborted! 
Don't know how to build task 'neo4j:install[community-latest, stable]' (see --tasks) 

答えて

0

あなたはそのタスクを変更することができるように:

desc 'Some description' 
# setup_dev_env is dependent on neo4j:start 
task :setup_dev_env,[:stable] => :environment do |t, arg| 
param = arg[:stable].nil? ? 'stable' : arg[:stable] 
Rake::Task['neo4j:start'].invoke(param) 
    puts "Created Rake task" 
end 
0

言う:

desc 'Some description' 
    # setup_dev_env is dependent on neo4j:start 
    task :setup_dev_env,[:stable] => "neo4j:start" do 
     puts "Created Rake task" 
    end 

上記のコード行は、安定したパラメータを受け入れ、のNeo4jするためにそれを渡す:スタート。 Neo4jで安定したパラメータを使用するには:スタート、あなたが好きなように受け取るために持っている必要があります。

desc 'Some description' 
    # it will be inside namespace neo4j 
    task :start, [:stable] do |t, args| 
     puts "Created Rake task #{args.inspect}" 
    end 
+0

今 'すくいsetup_dev_env [安定]'動作しますが、どのように'rake setup_dev_env'を実行中に' stable'引数を渡す必要がないように 'setup_dev_env'タスク自身を' stable'でハードコードすることができます –

関連する問題