diff --git a/.idea/modules.xml b/.idea/modules.xml
index ae599362c22c..aa7251843c6f 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -687,6 +687,7 @@
+
diff --git a/build/groovy/org/jetbrains/intellij/build/IdeaCommunityProperties.groovy b/build/groovy/org/jetbrains/intellij/build/IdeaCommunityProperties.groovy
index b19fc90de331..ef2699e9d11f 100644
--- a/build/groovy/org/jetbrains/intellij/build/IdeaCommunityProperties.groovy
+++ b/build/groovy/org/jetbrains/intellij/build/IdeaCommunityProperties.groovy
@@ -37,6 +37,7 @@ class IdeaCommunityProperties extends BaseIdeaProperties {
productLayout.classesLoadingOrderFilePath = "$home/build/order.txt"
mavenArtifacts.forIdeModules = true
+ mavenArtifacts.additionalModules = ["intellij.tools.jps.buildScriptDependencies"]
versionCheckerConfig = CE_CLASS_VERSIONS
}
diff --git a/build/lib/jps/antlayout.jar b/build/lib/jps/antlayout.jar
index 56a2d9c0e646..9bd055ccd6f6 100644
Binary files a/build/lib/jps/antlayout.jar and b/build/lib/jps/antlayout.jar differ
diff --git a/jps/antLayout/intellij.tools.jps.antTasks.iml b/jps/antLayout/intellij.tools.jps.antTasks.iml
index 11a70982363f..3c5ffcbcfae8 100644
--- a/jps/antLayout/intellij.tools.jps.antTasks.iml
+++ b/jps/antLayout/intellij.tools.jps.antTasks.iml
@@ -7,7 +7,6 @@
-
+
-
-
+
\ No newline at end of file
diff --git a/jps/antLayout/src/jetbrains/antlayout/datatypes/JarContainer.java b/jps/antLayout/src/jetbrains/antlayout/datatypes/JarContainer.java
index c9bf8bef7388..8f50b5724637 100644
--- a/jps/antLayout/src/jetbrains/antlayout/datatypes/JarContainer.java
+++ b/jps/antLayout/src/jetbrains/antlayout/datatypes/JarContainer.java
@@ -56,6 +56,10 @@ public class JarContainer extends ZipContainer {
((Jar) task).setFilesetmanifest(config);
}
+ public void setWhenmanifestonly(Zip.WhenEmpty we) {
+ ((Jar)task).setWhenmanifestonly(we);
+ }
+
public void addConfiguredManifest(Manifest newManifest) throws ManifestException {
((Jar) task).addConfiguredManifest(newManifest);
}
diff --git a/jps/standalone-builder/intellij.tools.jps.build.standalone.iml b/jps/standalone-builder/intellij.tools.jps.build.standalone.iml
index 9e85120cc6cf..bd9dfde44b24 100644
--- a/jps/standalone-builder/intellij.tools.jps.build.standalone.iml
+++ b/jps/standalone-builder/intellij.tools.jps.build.standalone.iml
@@ -11,7 +11,7 @@
-
+
diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MavenArtifactsBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MavenArtifactsBuilder.groovy
index ed802fcacc09..0f6466f8083b 100644
--- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MavenArtifactsBuilder.groovy
+++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MavenArtifactsBuilder.groovy
@@ -64,15 +64,20 @@ class MavenArtifactsBuilder {
modulesToPublish.each { aModule, artifactData ->
dir(artifactData.coordinates.directoryPath) {
ant.fileset(file: pomXmlFiles[aModule])
- jar(artifactData.coordinates.getFileName("", "jar")) {
- module(aModule.name)
+ def javaSourceRoots = aModule.getSourceRoots(JavaSourceRootType.SOURCE).toList()
+ def javaResourceRoots = aModule.getSourceRoots(JavaResourceRootType.RESOURCE).toList()
+ def hasSources = !(javaSourceRoots.isEmpty() && javaResourceRoots.isEmpty())
+ ant.jar(name: artifactData.coordinates.getFileName("", "jar"), duplicate: "fail", whenmanifestonly: "create") {
+ if (hasSources) {
+ module(aModule.name)
+ }
}
- if (publishSourcesFilter.test(aModule, buildContext)) {
+ if (publishSourcesFilter.test(aModule, buildContext) && hasSources) {
zip(artifactData.coordinates.getFileName("sources", "jar")) {
- aModule.getSourceRoots(JavaSourceRootType.SOURCE).each { root ->
+ javaSourceRoots.each { root ->
ant.zipfileset(dir: root.file.absolutePath, prefix: root.properties.packagePrefix.replace('.', '/'))
}
- aModule.getSourceRoots(JavaResourceRootType.RESOURCE).each { root ->
+ javaResourceRoots.each { root ->
ant.zipfileset(dir: root.file.absolutePath, prefix: root.properties.relativeOutputPath)
}
}
diff --git a/platform/build-scripts/intellij.tools.jps.buildScriptDependencies.iml b/platform/build-scripts/intellij.tools.jps.buildScriptDependencies.iml
new file mode 100644
index 000000000000..f4b6b06ddf4e
--- /dev/null
+++ b/platform/build-scripts/intellij.tools.jps.buildScriptDependencies.iml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file