param( [string]$JavaHome = $env:JAVA_HOME ) $ErrorActionPreference = "Stop" $root = Split-Path -Parent $PSScriptRoot $srcRoot = Join-Path $root "src" $buildRoot = Join-Path $root "build" $classesRoot = Join-Path $buildRoot "classes" $jarPath = Join-Path $buildRoot "order-service-demo.jar" $manifestPath = Join-Path $buildRoot "manifest.mf" New-Item -ItemType Directory -Path $classesRoot -Force | Out-Null $javac = if ($JavaHome) { Join-Path $JavaHome "bin\\javac.exe" } else { "javac" } $jar = if ($JavaHome) { Join-Path $JavaHome "bin\\jar.exe" } else { "jar" } $sources = Get-ChildItem -Path $srcRoot -Recurse -Filter *.java | ForEach-Object { $_.FullName } $javacArgs = @("-encoding", "UTF-8", "-d", $classesRoot) + $sources & $javac @javacArgs Set-Content -LiteralPath $manifestPath -Value "Main-Class: demo.orderservice.OrderServiceApplication`r`n" -Encoding ASCII & $jar cfm $jarPath $manifestPath -C $classesRoot . Write-Output $jarPath