diff --git a/build/scripts/utils.gant b/build/scripts/utils.gant index a96722fd3bb0..0317193ce6c3 100644 --- a/build/scripts/utils.gant +++ b/build/scripts/utils.gant @@ -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 modules -> +binding.setVariable("zipSourcesOfModules", { String targetFilePath, Collection 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) } } }