build scripts: reuse 'zipSourcesOfModules' method, don't fail if source root doesn't exist

This commit is contained in:
nik
2015-08-19 13:26:28 +03:00
parent 786c25e3af
commit e3cf383e61
+7 -3
View File
@@ -18,6 +18,7 @@ import com.intellij.openapi.util.SystemInfo
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.jps.gant.JpsGantTool
import org.jetbrains.jps.gant.TeamCityBuildInfoPrinter
import org.jetbrains.jps.model.java.JavaResourceRootType
import org.jetbrains.jps.model.java.JavaSourceRootType
import org.jetbrains.jps.model.java.JdkVersionDetector
import org.jetbrains.jps.model.java.JpsJavaExtensionService
@@ -737,7 +738,7 @@ binding.setVariable("zipSources", { String home, String targetDir ->
notifyArtifactBuilt(sources)
})
binding.setVariable("zipSourcesOfModules", { String home, String targetFilePath, Collection<String> modules ->
binding.setVariable("zipSourcesOfModules", { String targetFilePath, Collection<String> modules ->
projectBuilder.stage("zip sources of ${modules.size()} modules to $targetFilePath")
ant.mkdir(dir: new File(targetFilePath).getParent())
@@ -745,8 +746,11 @@ binding.setVariable("zipSourcesOfModules", { String home, String targetFilePath,
ant.zip(destfile: targetFilePath) {
modules.each {
JpsModule module = findModule(it)
module.getSourceRoots(JavaSourceRootType.SOURCE).flatten().collect {it.file}.each { File srcRoot ->
zipfileset(prefix: module.name, dir: srcRoot.absolutePath)
module.getSourceRoots(JavaSourceRootType.SOURCE).each { root ->
ant.zipfileset(dir: root.file.absolutePath, prefix: root.properties.packagePrefix.replace('.', '/'), erroronmissingdir: false)
}
module.getSourceRoots(JavaResourceRootType.RESOURCE).each { root ->
ant.zipfileset(dir: root.file.absolutePath, prefix: root.properties.relativeOutputPath, erroronmissingdir: false)
}
}
}