# 将 Libs 目录下的所有 *.jar 安装到本地 Maven 仓库 # groupId: org.dromara, version: 5.6.0 # 安装顺序:根POM → 纯POM父模块 → JAR(确保 parent 链完整) # 若同目录存在同名 .pom 文件,则使用真实 POM(传递依赖完整);否则自动生成空 POM。 $libsDir = $PSScriptRoot $groupId = "org.dromara" $version = "5.6.0" # ====== 第一步:安装根 POM(提供 dependencyManagement) ====== Write-Host "`n=== Step 1: Installing root POM (EnforcementCode) ===" -ForegroundColor Magenta $rootPomPath = (Resolve-Path (Join-Path $libsDir "..\pom.xml")).Path if (Test-Path $rootPomPath) { mvn install:install-file ` "-Dfile=$rootPomPath" ` "-DgroupId=$groupId" ` "-DartifactId=EnforcementCode" ` "-Dversion=$version" ` "-Dpackaging=pom" if ($LASTEXITCODE -eq 0) { Write-Host " -> OK" -ForegroundColor Green } else { Write-Host " -> FAILED" -ForegroundColor Red } } else { Write-Host " -> Root pom.xml not found at $rootPomPath, skipping" -ForegroundColor Yellow } # ====== 第二步:安装纯 POM 父模块(只有 .pom 没有对应 .jar 的文件) ====== Write-Host "`n=== Step 2: Installing parent POMs (no matching JAR) ===" -ForegroundColor Magenta Get-ChildItem -Path $libsDir -Filter "*.pom" | Where-Object { $jarName = $_.BaseName + ".jar" -not (Test-Path (Join-Path $libsDir $jarName)) } | ForEach-Object { $pomFile = $_.FullName $artifactId = $_.BaseName -replace "-$version$", "" Write-Host "Installing POM: $artifactId" -ForegroundColor Cyan mvn install:install-file ` "-Dfile=$pomFile" ` "-DgroupId=$groupId" ` "-DartifactId=$artifactId" ` "-Dversion=$version" ` "-Dpackaging=pom" if ($LASTEXITCODE -eq 0) { Write-Host " -> OK" -ForegroundColor Green } else { Write-Host " -> FAILED" -ForegroundColor Red } } # ====== 第三步:安装 JAR(使用真实 POM 或生成空 POM) ====== Write-Host "`n=== Step 3: Installing JARs ===" -ForegroundColor Magenta Get-ChildItem -Path $libsDir -Filter "*.jar" | ForEach-Object { $jarFile = $_.FullName # 从文件名中提取 artifactId,例如 zdxt-common-core-5.6.0.jar -> zdxt-common-core $artifactId = $_.BaseName -replace "-$version$", "" $pomFile = Join-Path $libsDir "$artifactId-$version.pom" if (Test-Path $pomFile) { Write-Host "Installing: $artifactId (with real POM)" -ForegroundColor Cyan mvn install:install-file ` "-Dfile=$jarFile" ` "-DpomFile=$pomFile" ` "-Dpackaging=jar" } else { Write-Host "Installing: $artifactId (generated POM, no transitive deps)" -ForegroundColor Yellow mvn install:install-file ` "-Dfile=$jarFile" ` "-DgroupId=$groupId" ` "-DartifactId=$artifactId" ` "-Dversion=$version" ` "-Dpackaging=jar" ` "-DgeneratePom=true" } if ($LASTEXITCODE -eq 0) { Write-Host " -> OK" -ForegroundColor Green } else { Write-Host " -> FAILED" -ForegroundColor Red } } Write-Host "`nAll done." -ForegroundColor Yellow