/** * 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 }