Pregunta

Aquí está mi archivo rastrillo primaria

subrake = 'subrake'

task :init => [subrake] do
  #call subrake.build
end

import subrake

Veo documentación sobre cómo funcionan los pasos anteriores, pero no puedo encontrar la manera de llamar a tareas en el otro archivo subrake. Por cierto, estas tareas pueden tener el mismo nombre que el mío, este es un problema?

¿Fue útil?

Solución

Creo que estoy tarde con mi respuesta, pero no tenía la misma pregunta hace sólo unos momentos. Así que la solución podría ser útil para alguien.

Rakefile.rb

subrake = 'subrake'

task :default => :init

task :init => ["#{subrake}:init"] do
  Rake::Task["#{subrake}:build"].invoke
end

require "#{Dir.pwd}/#{subrake}"

subrake.rb

namespace :subrake do

  desc "Init"
  task :init do
    puts 'Init called'
  end

  desc "Build"
  task :build do
    puts 'Build called'
  end

end

Creo que el código describe a sí misma sólo es bueno, pero yo quiero parar en un momento dado. Cuando usted está llamando requiere , se debe prever un subrake presentar una ruta completa (como en mi ejemplo) o '\ subrake' (si está en un directorio de trabajo )

Otros consejos

Si usted tiene más de un archivo secundario de rake podría hacer algo como

Dir.glob('**/*.rake').each { |r| import r}

task :init => ["subrake:init"] 

y se puede tener un archivos sub.rake que se parece de manera

namespace :subrake do
  desc "Init"
  task :init do
    puts 'Init called'
  end
end

y otro archivo foo.rake

namespace :foorake do
  desc "Init"
  task :init do
    puts 'Init called'
  end
end

y se puede llamar foorake: init de la concha como tal

#rake foorake:init

o añadirlo a que la tarea principal hacer como así

task :init => ["subrake:init", "fforake:init"]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top