This script can be used a to generate all the dependency tags for all the files that the Rational Application Developer (RAD) environment is using to when coding for WebSphere Portal 7 & 8 as well as the application server.
rem **********************************************************************
rem * Peter Grape, 2012-2013, portalcoder.blogspot.com *
rem * Run this script in the <RAD homedir>/runtimes and it will generate *
rem * all the files you need to upload to a maven repository *
rem * Update the URL and the Maven headers to your liking first *
rem **********************************************************************
urlPath = "http://host:10000/artifactory/libs-ibm-local"
repoPath = "libs-ibm-local"
grpId = "unknown"
commongrpId = "com.company.portal"
version = "unknown"
artId = "ibm-was"
Set objFSO = CreateObject("Scripting.FileSystemObject")
startFolder = "."
Set objStartFolder = objFSO.GetFolder(startFolder)
For Each Subfolder in objStartFolder.SubFolders
wscript.echo "Found folder:" + Subfolder.Name
IterateARuntimeFolder objStartFolder,Subfolder
Next
ignoredFolder = false
Sub IterateARuntimeFolder(RootFolder,objFolder)
objRootFolder = objFolder.Path
ignoredFolder = false
SetversionAndType objFolder
if (ignoredFolder = false) Then
set wshell = createobject("wscript.shell")
rem depsrunFilename=objRootFolder + "\uploaddeps_" + objFolder.name + ".bat"
rem Set depsrunFile = objFSO.CreateTextFile(depsrunFilename,True)
rem currentDir = wshell.currentdirectory
rem depsrunFile.write "set mvn_deps_options=deploy:deploy-file -DartifactId=" + artId + " -DgroupId=" + commongrpid + " -Dversion=" + version + " -Dpackaging=pom -DrepositoryId=" + repoPath + " -Durl=" + urlPath + vbCrLf
rem depsrunFile.write "set runtime_deps_root=" + RootFolder.Path + vbCrLf
rem depsrunFile.write "call mvn %mvn_deps_options% -Dfile=""%runtime_deps_root%\deps_" + objFolder.name + ".pom""" & vbCrLf
rem depsrunFile.close
DoUploadFolders RootFolder,objFolder
REM We need to reset to the start again...
Set objFolder = objFSO.GetFolder(objRootFolder)
DoDepsFolders objFolder
end if
End Sub
Sub DoUploadFolders(RootFolder,Folder)
outFile=RootFolder.Path + "\upload_" + Folder.Name + ".bat"
Set uploadFile = objFSO.CreateTextFile(outFile,True)
uploadFile.Write "@echo off"& vbCrLf
uploadFile.Write "REM File created by Peter Grape"& vbCrLf
uploadFile.Write "set mvn_options=deploy:deploy-file -Dversion=" + version + " -Dpackaging=jar -DrepositoryId=" + repoPath + " -Durl=" + urlPath & vbCrLf
uploadFile.Write "set runtime_root=" + Folder.Path & vbCrLf
uploadFile.write "set mvn_deps_options=deploy:deploy-file -DartifactId=" + artId + " -DgroupId=" + commongrpid + " -Dversion=" + version + " -Dpackaging=pom -DrepositoryId=" + repoPath + " -Durl=" + urlPath + vbCrLf
uploadFile.write "set runtime_deps_root=" + RootFolder.Path + vbCrLf
uploadFile.write "call mvn %mvn_deps_options% -Dfile=""%runtime_deps_root%\deps_" + Folder.name + ".pom""" & vbCrLf
RunUploadSubfolders Folder.Path,Folder,uploadFile
uploadFile.Close
End Sub
Sub RunUploadSubfolders(StartPath,runFolder,uploadFile)
For Each Subfolder in runFolder.SubFolders
Set objFolder = objFSO.GetFolder(Subfolder.Path)
relPath = Replace(Subfolder.Path,StartPath,"")
relID = Replace(relPath,"\",".")
Set colFiles = objFolder.Files
For Each objFile in colFiles
sExtension = objFSO.GetExtensionName(objFile.Name)
if (sExtension = "jar") Then
sBasename = objFSO.GetBaseName(objFile.Name)
uploadFile.Write "call mvn %mvn_options% -DgroupId=" + grpID + relID + " -DartifactId=" + sBasename + " -Dfile=""%runtime_root%" + relPath + "\" + objFile.Name + """" & vbCrLf
end if
Next
RunUploadSubfolders StartPath,Subfolder,uploadFile
Next
End Sub
Sub DoDepsFolders(Folder)
outFile = ".\deps_" + Folder.Name + ".pom"
Set depsFile = objFSO.CreateTextFile(outFile,True)
depsFile.Write "<project xmlns=""http://maven.apache.org/POM/4.0.0"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""" & vbCrLf
depsFile.Write " xsi:schemaLocation=""http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"">" & vbCrLf
depsFile.Write " <modelVersion>4.0.0</modelVersion>"& vbCrLf
depsFile.Write " <groupId>" + commongrpId + "</groupId>"& vbCrLf
depsFile.Write " <artifactId>" + artId + "</artifactId>"& vbCrLf
depsFile.Write " <version>" + version + "</version>"& vbCrLf
depsFile.Write " <packaging>pom</packaging>"& vbCrLf
depsFile.Write " <name>IBM WebSphere Server " + version + "</name>"& vbCrLf
depsFile.Write " <description>All the JAR files in the IBM WebSphere server " + version + "</description>"& vbCrLf
depsFile.Write " <organization>"& vbCrLf
depsFile.Write " <name>company IT AB</name>"& vbCrLf
depsFile.Write " <url>http://www.company.com/</url>"& vbCrLf
depsFile.Write " </organization>"& vbCrLf
depsFile.Write " <developers>"& vbCrLf
depsFile.Write " <developer>"& vbCrLf
depsFile.Write " <email>peter.grape@company.com</email>"& vbCrLf
depsFile.Write " <url>http://www.company.com</url>"& vbCrLf
depsFile.Write " <organization>company IT</organization>"& vbCrLf
depsFile.Write " <organizationUrl>http://www.company.com</organizationUrl>"& vbCrLf
depsFile.Write " </developer>"& vbCrLf
depsFile.Write " </developers>"& vbCrLf
depsFile.Write "<dependencies>"& vbCrLf
RunDepsSubfolders Folder,Folder,depsFile
depsFile.Write "</dependencies>"& vbCrLf
depsFile.Write " <issueManagement>"& vbCrLf
depsFile.Write " <system>Jira</system>"& vbCrLf
depsFile.Write " <url>http://jira.company.com</url>"& vbCrLf
depsFile.Write " </issueManagement>"& vbCrLf
depsFile.Write "</project>"& vbCrLf
depsFile.Close
End Sub
Sub RunDepsSubfolders(StartFolder,Folder,depsFile)
For Each Subfolder in Folder.SubFolders
rem depsFile.Write Subfolder.Path
Set objFolder = objFSO.GetFolder(Subfolder.Path)
relPath = Replace(Subfolder.Path,StartFolder.Path,"")
relID = Replace(relPath,"\",".")
Set colFiles = objFolder.Files
For Each objFile in colFiles
sExtension = objFSO.GetExtensionName(objFile.Name)
if (sExtension = "jar") Then
sBasename = objFSO.GetBaseName(objFile.Name)
depsFile.Write "<dependency>"& vbCrLf
depsFile.Write " <groupId>" + grpId + relID + "</groupId>"& vbCrLf
depsFile.Write " <artifactId>" + sBasename + "</artifactId>"& vbCrLf
depsFile.Write " <version>" + version + "</version>"& vbCrLf
depsFile.Write "</dependency>"& vbCrLf
end if
Next
RunDepsSubfolders StartFolder,Subfolder,depsFile
Next
End Sub
Sub SetversionAndType(Folder)
isBase = InStr(Folder.name,"base")
isPortal = InStr(Folder.name,"portal")
REM wscript.echo "isBase:" & isBase
REM wscript.echo "isPortal:" & isPortal
if (isBase = 1) then
grpID = "com.ibm.was"
artId = "ibm-was"
end if
if (isPortal = 1) then
grpID = "com.ibm.wps"
artId = "ibm-wps"
end if
versionStart = InStr(Folder.name,"_v")
versionEnd = InStr(versionStart + 2,Folder.name,"_")
if (versionStart <> 0) and (versionEnd <> 0) then
versionStr = Mid(Folder.name,versionStart + 2,versionEnd - (versionStart + 2))
rem wscript.echo "version:" + versionStr
if (Len(versionStr) = 1) then
versionStr = versionStr + "0"
end if
version = Left(versionStr,1) & "." & Right(versionStr,1)
wscript.echo "Version:" & version
ignoredFolder = false
else
wscript.echo "version not found in folder name ignored"
ignoredFolder = true
end if
end sub
No comments:
Post a Comment