diff --git a/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt b/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt
index 0303d2077b4..5049eedc230 100644
--- a/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt
+++ b/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt
@@ -175,6 +175,7 @@ class KotlinFacetSettings {
if (compilerSettings != null) {
parseCommandLineArguments(compilerSettings.additionalArgumentsAsList, this)
}
+ if (this is K2JVMCompilerArguments) this.classpath = ""
}
} else null
}
diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt
index 580bb0db902..16e8c6ad9c5 100644
--- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt
+++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt
@@ -71,6 +71,8 @@ import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.net.URLClassLoader
+import java.nio.file.Files
+import java.nio.file.StandardCopyOption
import java.util.*
import java.util.zip.ZipOutputStream
@@ -986,6 +988,31 @@ open class KotlinJpsBuildTest : KotlinJpsBuildTestBase() {
checkWhen(emptyArray(), null, packageClasses("kotlinProject", "src/test1.kt", "Test1Kt"))
}
+ fun testBuildAfterGdwBuild() {
+ initProject(JVM_FULL_RUNTIME)
+ findModule("module2").let {
+ val facet = KotlinFacetSettings()
+ facet.useProjectSettings = false
+ facet.compilerArguments = K2JVMCompilerArguments()
+
+ val libraryName = "module1-1.0-SNAPSHOT"
+ val libraryJar = MockLibraryUtilExt.compileJvmLibraryToJar(workDir.resolve("module1AsLib").absolutePath, libraryName)
+ val module1Lib = this.workDir.resolve("module1").resolve("build").resolve("libs").resolve("$libraryName.jar")
+ Files.createDirectories(module1Lib.parentFile.toPath())
+ Files.copy(libraryJar.toPath(), module1Lib.toPath(), StandardCopyOption.REPLACE_EXISTING)
+
+ assert(module1Lib.exists())
+ (facet.compilerArguments as K2JVMCompilerArguments).classpath = module1Lib.path
+
+ it.container.setChild(
+ JpsKotlinFacetModuleExtension.KIND,
+ JpsKotlinFacetModuleExtension(facet)
+ )
+ }
+
+ buildAllModules().assertSuccessful()
+ }
+
private fun BuildResult.checkErrors() {
val actualErrors = getMessages(BuildMessage.Kind.ERROR)
.map { it as CompilerMessage }
diff --git a/jps/jps-plugin/testData/general/BuildAfterGdwBuild/kotlinProject.ipr b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/kotlinProject.ipr
new file mode 100644
index 00000000000..c1a403dd047
--- /dev/null
+++ b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/kotlinProject.ipr
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1/module1.iml b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1/module1.iml
new file mode 100644
index 00000000000..eff2a2bb0bf
--- /dev/null
+++ b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1/module1.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1/src/Base.kt b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1/src/Base.kt
new file mode 100644
index 00000000000..0e668cef32c
--- /dev/null
+++ b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1/src/Base.kt
@@ -0,0 +1,4 @@
+abstract class Base {
+ abstract fun doSmth()
+ abstract fun doSmthElse()
+}
\ No newline at end of file
diff --git a/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1AsLib/Base.kt b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1AsLib/Base.kt
new file mode 100644
index 00000000000..7a2b10a239d
--- /dev/null
+++ b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module1AsLib/Base.kt
@@ -0,0 +1,3 @@
+abstract class Base {
+ abstract fun doSmth()
+}
\ No newline at end of file
diff --git a/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module2/module2.iml b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module2/module2.iml
new file mode 100644
index 00000000000..bdec3f1d34a
--- /dev/null
+++ b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module2/module2.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module2/src/Derived.kt b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module2/src/Derived.kt
new file mode 100644
index 00000000000..926ab81f287
--- /dev/null
+++ b/jps/jps-plugin/testData/general/BuildAfterGdwBuild/module2/src/Derived.kt
@@ -0,0 +1,9 @@
+class Derived: Base() {
+ override fun doSmth() {
+ println("doSmth")
+ }
+
+ override fun doSmthElse() {
+ println("doSmthElse")
+ }
+}
\ No newline at end of file