/**
  * Función privada encargada de compilar la práctica.
  * 
  */
 private function __compilarPractica()
 {
     exec('cd ' . $this->ruta_carpeta_id . "/arquetipo" . ' && mvn compile', $salida);
     $salida_string = implode(' ', $salida);
     if (strpos($salida_string, 'BUILD SUCCESS')) {
         // Compilación correcta
         // Creación carpeta intento
         $this->intento_realizado = $this->total_intentos_realizados + 1;
         mkdir($this->ruta_carpeta_id . $this->intento_realizado . "/", 0777, true);
         // Copiar practica subida a la carpeta del intento
         exec('xcopy ' . str_replace('/', '\\', $this->ruta_carpeta_id) . "\\arquetipo\\src\\main\\java" . ' ' . str_replace('/', '\\', $this->ruta_carpeta_id) . "\\" . $this->intento_realizado . ' /s /e');
         // Copiar zip practica a la carpeta del intento
         exec('xcopy ' . $this->nombre_practica_zip . ' ' . str_replace('/', '\\', $this->ruta_carpeta_id) . "\\" . $this->intento_realizado);
         $this->__guardarIntento();
         // Generar gráficas
         $graficas_controller = new GraficasController();
         $graficas_controller->generarGraficasViolacionesErroresAlumno();
         $graficas_controller->generarGraficaPrioridadesViolacionesIntentoRealizadoAlumno($this->id_intento);
     } else {
         $this->Flash->error(__('La práctica tiene errores de compilación'));
     }
     unlink('./' . $this->nombre_practica_zip);
     exec('cd ' . $this->ruta_carpeta_id . "/arquetipo/src/main" . ' && rmdir java /s /q && md java');
     // borrar main/java
     exec('cd ' . $this->ruta_carpeta_id . "/arquetipo" . ' && rmdir target /s /q');
     // borrar target
 }