# File lib/buildr/core/project.rb, line 519
    def task(*args, &block)
      task_name, arg_names, deps = Buildr.application.resolve_args(args)
      if task_name =~ /^:/
        task = Buildr.application.switch_to_namespace [] do
          Rake::Task.define_task(task_name[1..-1])
        end
      elsif Buildr.application.current_scope == name.split(':')
        task = Rake::Task.define_task(task_name)
      else
        unless task = Buildr.application.lookup(task_name, name.split(':'))
          raise "You cannot define a project task outside the project definition, and no task #{name}:#{task_name} defined in the project"
        end
      end
      task.set_arg_names(arg_names) unless arg_names.empty?
      task.enhance Array(deps), &block
    end