Multi-module Gradle project builds to many modules


we have a simple multi-module Gradle-based project. You can find the build.gradle file here:

The "core" project is a plain old Java project. The "android" project is an Android project, so we apply the Android Gradle plugin. The "ios" project is a RoboVM project, for which we apply the RoboVM Gradle plugin. The "android" and "ios" projects both depend on the "core" project, but not on each other.

When importing this project, all projects receive an Android-Gradle facet. This already looks very suspicious. When running the "android" project (using a "Make" build step in the run configuration), gradle gets invoked for the "core" and "android" project. That's expected.

However, when running the "ios" project, the "android" project is also build. This does not happen on when invoking the build via Gradle from the CLI.

I'm unsure if this is the fault of the RoboVM IDEA plugin, the Gradle IDEA plugin or the Android IDEA plugin. The RoboVM module is handled like a Java module, we only assign a different SDK to it. For compilation, we register a CompileTask, but that has no influence on the Java build that is triggered before it.

Grateful for any pointers.

1 comment
Comment actions Permalink

Hi Mario,

This happens, because you didn't setup selected module for RoboVmRunConfiguration (e.g. using com.intellij.execution.configurations.ModuleBasedConfiguration#setModule method).
And such configuration produces the whole project search scope (see com.intellij.execution.configurations.SearchScopeProvider#createSearchScope for details)


Please sign in to leave a comment.