# File lib/bee.rb, line 120
    def run(targets, listener=nil, dry=false)
      @listener = listener
      working_directory = Dir.getwd
      @listener.build_started(self, dry) if @listener
      begin
        evaluate_properties
        if not Bee::Util::url?(@base)
          Dir.chdir(@base)
        end
        @targets.run(targets, dry)
        @listener.build_finished(self, dry) if @listener
      rescue Bee::Util::BuildError => e
        if @listener
          @listener.error(e)
        else
          raise e
        end
      ensure
        Dir.chdir(working_directory)
        remove_instance_variable(:@listener)
      end
    end