Migration complète vers PrimeFaces Freya - Corrections des incompatibilités et intégration de primefaces-freya-extension
This commit is contained in:
155
scripts/kill-java-processes.ps1
Normal file
155
scripts/kill-java-processes.ps1
Normal file
@@ -0,0 +1,155 @@
|
||||
#!/usr/bin/env pwsh
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Script pour tuer les processus Java liés au projet Lions User Manager
|
||||
|
||||
.DESCRIPTION
|
||||
Ce script identifie et tue tous les processus Java qui pourraient verrouiller
|
||||
les fichiers du projet, permettant ainsi d'exécuter mvn clean sans erreur.
|
||||
|
||||
.PARAMETER Force
|
||||
Force l'arrêt des processus sans confirmation
|
||||
|
||||
.EXAMPLE
|
||||
.\kill-java-processes.ps1
|
||||
|
||||
.EXAMPLE
|
||||
.\kill-java-processes.ps1 -Force
|
||||
#>
|
||||
|
||||
param(
|
||||
[Parameter(Mandatory=$false)]
|
||||
[switch]$Force
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# Couleurs
|
||||
function Write-Success { Write-Host "✅ $args" -ForegroundColor Green }
|
||||
function Write-Info { Write-Host "ℹ️ $args" -ForegroundColor Cyan }
|
||||
function Write-Warning { Write-Host "⚠️ $args" -ForegroundColor Yellow }
|
||||
function Write-Error { Write-Host "❌ $args" -ForegroundColor Red }
|
||||
function Write-Step { Write-Host "`n🚀 $args" -ForegroundColor Magenta }
|
||||
|
||||
Write-Host @"
|
||||
|
||||
╔═══════════════════════════════════════════════════════════════════════════════╗
|
||||
║ ║
|
||||
║ 🔪 ARRÊT DES PROCESSUS JAVA - LIONS USER MANAGER 🔪 ║
|
||||
║ ║
|
||||
╚═══════════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
"@ -ForegroundColor Cyan
|
||||
|
||||
# 1. Lister tous les processus Java
|
||||
Write-Step "1. Recherche des processus Java..."
|
||||
|
||||
$javaProcesses = Get-Process | Where-Object {
|
||||
$_.ProcessName -like "*java*" -or $_.ProcessName -like "*javaw*"
|
||||
} | Where-Object {
|
||||
# Exclure les processus Cursor/IDE
|
||||
$_.Path -notlike "*\.cursor\*" -and
|
||||
$_.Path -notlike "*\.vscode\*" -and
|
||||
$_.Path -notlike "*IntelliJ*" -and
|
||||
$_.Path -notlike "*eclipse*"
|
||||
}
|
||||
|
||||
if ($javaProcesses.Count -eq 0) {
|
||||
Write-Success "Aucun processus Java trouvé à arrêter"
|
||||
exit 0
|
||||
}
|
||||
|
||||
Write-Info "Processus Java trouvés: $($javaProcesses.Count)"
|
||||
$javaProcesses | ForEach-Object {
|
||||
Write-Host " - PID: $($_.Id) | Process: $($_.ProcessName) | Path: $($_.Path)" -ForegroundColor Gray
|
||||
}
|
||||
|
||||
# 2. Vérifier les ports utilisés
|
||||
Write-Step "2. Vérification des ports utilisés..."
|
||||
|
||||
$ports = @(8080, 8081, 8180)
|
||||
foreach ($port in $ports) {
|
||||
$connections = netstat -ano | Select-String ":$port\s" | ForEach-Object {
|
||||
if ($_ -match '\s+(\d+)$') {
|
||||
$matches[1]
|
||||
}
|
||||
}
|
||||
if ($connections) {
|
||||
Write-Info "Port $port utilisé par les PIDs: $($connections -join ', ')"
|
||||
}
|
||||
}
|
||||
|
||||
# 3. Demander confirmation (sauf si -Force)
|
||||
if (-not $Force) {
|
||||
Write-Warning "`n⚠️ Ces processus seront arrêtés de force."
|
||||
$confirm = Read-Host "Continuer ? (O/N)"
|
||||
if ($confirm -ne "O" -and $confirm -ne "o" -and $confirm -ne "Y" -and $confirm -ne "y") {
|
||||
Write-Info "Opération annulée"
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
# 4. Arrêter les processus
|
||||
Write-Step "3. Arrêt des processus Java..."
|
||||
|
||||
$killed = 0
|
||||
$errors = 0
|
||||
|
||||
foreach ($process in $javaProcesses) {
|
||||
try {
|
||||
Write-Info "Arrêt du processus $($process.Id) ($($process.ProcessName))..."
|
||||
Stop-Process -Id $process.Id -Force -ErrorAction Stop
|
||||
$killed++
|
||||
Write-Success "Processus $($process.Id) arrêté"
|
||||
} catch {
|
||||
$errors++
|
||||
Write-Error "Erreur lors de l'arrêt du processus $($process.Id): $_"
|
||||
}
|
||||
}
|
||||
|
||||
# 5. Attendre un peu pour que les fichiers soient libérés
|
||||
if ($killed -gt 0) {
|
||||
Write-Info "Attente de 2 secondes pour libérer les fichiers..."
|
||||
Start-Sleep -Seconds 2
|
||||
}
|
||||
|
||||
# 6. Vérifier qu'il ne reste plus de processus (sauf Cursor/IDE)
|
||||
Write-Step "4. Vérification finale..."
|
||||
|
||||
$remaining = Get-Process | Where-Object {
|
||||
($_.ProcessName -like "*java*" -or $_.ProcessName -like "*javaw*") -and
|
||||
$_.Path -notlike "*\.cursor\*" -and
|
||||
$_.Path -notlike "*\.vscode\*" -and
|
||||
$_.Path -notlike "*IntelliJ*" -and
|
||||
$_.Path -notlike "*eclipse*"
|
||||
}
|
||||
|
||||
if ($remaining.Count -eq 0) {
|
||||
Write-Success "Tous les processus Java du projet ont été arrêtés"
|
||||
} else {
|
||||
Write-Warning "Il reste $($remaining.Count) processus Java:"
|
||||
$remaining | ForEach-Object {
|
||||
Write-Host " - PID: $($_.Id) | Process: $($_.ProcessName)" -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
|
||||
# 7. Résumé
|
||||
Write-Host @"
|
||||
|
||||
╔═══════════════════════════════════════════════════════════════════════════════╗
|
||||
║ ║
|
||||
║ ✅ PROCESSUS JAVA ARRÊTÉS ✅ ║
|
||||
║ ║
|
||||
╚═══════════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
"@ -ForegroundColor Green
|
||||
|
||||
Write-Host "📊 RÉSUMÉ:" -ForegroundColor Yellow
|
||||
Write-Host " Processus arrêtés: $killed" -ForegroundColor White
|
||||
if ($errors -gt 0) {
|
||||
Write-Host " Erreurs: $errors" -ForegroundColor Red
|
||||
}
|
||||
Write-Host ""
|
||||
Write-Host "💡 Vous pouvez maintenant exécuter 'mvn clean' sans erreur" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
Reference in New Issue
Block a user