MavenArtifactIDLister.psm1
|
function Get-ModulesArtifactIds { [CmdletBinding()] param ( [String]$workPath = 'C:\Users\User\IdeaProjects\CarrierEX' ) Write-Verbose "Working directory is $workPath" $modules = ls -Path $workPath -Directory | Select-Object FullName, Name | ?{$_.Name -notmatch 'idea' } $newModules = New-Object System.Collections.ArrayList foreach ($module in $modules) { Write-Verbose ("Listing module " + $module.Name) $modulePath = $module.FullName $module.PSObject.Properties.Remove('FullName') if (!(Test-Path ($modulePath + '\pom.xml'))) { Write-Verbose "No pom.xml file found" $module | Add-Member ArtifactId '' $module | Add-Member ChildModules '' $newModules.Add($module) > $null continue } $pomFile = [xml](Get-Content ($modulePath + '\pom.xml')) $artifactId = $pomFile.project.artifactId if ($artifactId -ne $null) { $module | Add-Member ArtifactId $artifactId } else { Write-Verbose "artifactId not found" $module | Add-Member ArtifactId '' } $childModules = $pomFile.project.modules if ($childModules -ne $null) { $val = $childModules | Select-Object -Expand Name $names = '' for ($i = 0; $i -lt $childModules.ChildNodes.Count; $i++) { $names += $childModules.ChildNodes[$i].'#text' + ', ' } $names = $names.Substring(0, $names.Length - 2) $module | Add-Member ChildModules $names } else { $module | Add-Member ChildModules '' Write-Verbose "No child modules found" } $newModules.Add($module) > $null } $newModules | Export-Csv ($workPath + '\modules.txt') -NoTypeInformation } Export-ModuleMember -Function Get-ModulesArtifactIds |