build-release.ps1 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. param(
  2. [string]$Java8Home = "D:\java\jdk\jdk8"
  3. )
  4. $ErrorActionPreference = "Stop"
  5. $projectRoot = $PSScriptRoot
  6. $sourceJar = Join-Path $projectRoot "classes\artifacts\MesOP040_jar\MesOP040.jar"
  7. $javaExe = Join-Path $Java8Home "bin\java.exe"
  8. $jreSource = Join-Path $Java8Home "jre"
  9. $jfxRuntime = Join-Path $jreSource "lib\ext\jfxrt.jar"
  10. $releaseRoot = Join-Path $projectRoot "release\MesOP040"
  11. if (-not (Test-Path -LiteralPath $sourceJar)) {
  12. throw "未找到 JAR:$sourceJar。请先在 IDEA 执行 Build Artifacts -> MesOP040:jar -> Build。"
  13. }
  14. if (-not (Test-Path -LiteralPath $javaExe) -or -not (Test-Path -LiteralPath $jfxRuntime)) {
  15. throw "Java8Home 必须指向包含 JavaFX 的 JDK 8。当前路径:$Java8Home"
  16. }
  17. if (Test-Path -LiteralPath $releaseRoot) {
  18. Remove-Item -LiteralPath $releaseRoot -Recurse -Force
  19. }
  20. New-Item -ItemType Directory -Path $releaseRoot | Out-Null
  21. Copy-Item -LiteralPath $sourceJar -Destination (Join-Path $releaseRoot "MesOP040.jar")
  22. Copy-Item -LiteralPath $jreSource -Destination (Join-Path $releaseRoot "runtime") -Recurse
  23. $launcher = @'
  24. @echo off
  25. setlocal
  26. cd /d "%~dp0"
  27. if not exist "runtime\bin\javaw.exe" (
  28. echo Missing bundled Java runtime.
  29. pause
  30. exit /b 1
  31. )
  32. start "MES OP040" /b "runtime\bin\javaw.exe" -jar "MesOP040.jar"
  33. '@
  34. Set-Content -LiteralPath (Join-Path $releaseRoot "start.bat") -Value $launcher -Encoding ASCII
  35. Write-Host "Release created: $releaseRoot"