in src/main/groovy/com/epam/atg/gradle/assemble/AssembleATGTask.groovy [56:121]
void assembleEAR() {
if (!dynamoRoot) {
dynamoRoot = project.property(ATGPluginConstants.PROJECT_ATG_ROOT_PROPERTY)
if (!dynamoRoot) {
throw new IllegalArgumentException('"dynamoRoot" is required property.')
}
}
List<File> tempLinks = []
Map atgRootModules = ProjectUtils.getAtgRootProjectsPathsWithModulesNames(project)
atgRootModules.each { String projectPath, String moduleName ->
File atgModuleFile = new File("$dynamoRoot/$moduleName")
if (!atgModuleFile.exists()) {
Project rootAtgProject = project.project(projectPath)
FileUtils.createLink(atgModuleFile, rootAtgProject.projectDir)
tempLinks.add(atgModuleFile)
project.logger.info('Added temporary link from {} to {}', rootAtgProject.projectDir, atgModuleFile)
}
}
project.ant.taskdef(name: 'assembleEAR',
classname: 'atg.appassembly.ant.CreateUnpackedEarTask',
classpath: "$dynamoRoot/home/lib/assembler.jar")
Map assemblerEARTaskParameters = [
//required
destinationFile : destinationFile,
dynamoModules : dynamoModules,
dynamoRoot : dynamoRoot,
//optional
addEarFile : addEarFile,
collapseClasspath : collapseClasspath,
contextRootsFile : contextRootsFile,
displayName : displayName,
displayVariable : displayVariable,
dynamoEnvPropsFile: dynamoEnvPropsFile,
layer : layer,
liveConfig : liveConfig,
overwrite : overwrite,
prependJars : prependJars,
serverName : serverName,
standalone : standalone,
//optional for atg 11, does not exists for atg < 11
jboss : jboss,
omitLicenses : omitLicenses
]
List definedKeys = assemblerEARTaskParameters.findAll {
(it.value != null && ((it.value instanceof String && !((String) it.value).isEmpty()) || !it.value instanceof String))
}.collect {
it.key
}
assemblerEARTaskParameters = assemblerEARTaskParameters.subMap(definedKeys)
println(assemblerEARTaskParameters)
try {
project.ant.assembleEAR(assemblerEARTaskParameters) {
assemblerEARTaskParameters
}
} finally {
for (File link in tempLinks) {
link.delete()
project.logger.info('Removed temporary link {}', link)
}
}
}