JPS Build: fix importing artifacts

For some reason, gradle.projectsEvaluated callback evaluates after IDEA
import script gathers all project models. So, all jps related project
settings (including artifacts configurations) won't be imported.

We need only :prepare:idea-plugin evaluated. So replacing
gradle.projectsEvaluated to root Project.afterEvaluate and
 forcing evaluation of :prepare:idea-plugin fixes the problem.
This commit is contained in:
Sergey Rostov
2019-06-06 10:48:31 +03:00
parent 8995d89599
commit a3f8987255
+3 -1
View File
@@ -1,3 +1,4 @@
import org.gradle.api.internal.project.ProjectInternal
import org.jetbrains.gradle.ext.*
import org.jetbrains.kotlin.ideaExt.*
import org.jetbrains.kotlin.buildUtils.idea.*
@@ -43,7 +44,7 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
}
}
gradle.projectsEvaluated {
rootProject.afterEvaluate {
rootProject.allprojects {
idea {
module {
@@ -162,6 +163,7 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
fun NamedDomainObjectContainer<TopLevelArtifact>.ideaPlugin() {
val ideaPluginProject = project(":prepare:idea-plugin")
(ideaPluginProject as ProjectInternal).evaluate()
val libraries by ideaPluginProject.configurations
val jpsPlugin by ideaPluginProject.configurations