IntelliJ IDEA with multiple gradle subprojects
gradle, intellij-idea
Solution
Currently in IntelliJ IDEA 2019.2 you can add the gradle subprojects like so
- Open Gradle Tool Window via View > Tool Windows > Gradle menu
- Click on "Link Gradle Project" button (the plus sign)
- Select the build.gradle file corresponding to the subproject
- Go to File > Project Structure > Modules > NameOfSubproject
- Navigate to main/java and click on Mark as: Sources
- Mark the main/resources as Resources
- Restart IntelliJ IDEA
The sources of the subproject will be recognized by IntelliJ and you can use Navigate Class action for the classes in the subproject
Problem
I'm working on multiple Gradle projects with internal and external dependencies, and so far I am happy that thanks to Gradle's dependency management I can modify a library project without affecting every application that uses the library. When I need to modify a library project and test it using an application project that uses it, I need to do the following, - Modify the library project and commit to SCM - Trigger CI to build the library project and push it to my Gradle repository - Update the application project's `build.properties` to refer to the new version of library project - Iterate the above steps until everything works and there is no bug So it became quite combersome now. Can I configure IntelliJ IDEA so that - All my Gradle projects are in one window, like the screenshot below, which is Twitter's Finagle imported using its `pom.xml`. Sadly IntelliJ's JetGradle plugin doesn't seem to understand Gradle subprojects. - When `build.properties`'s dependencies are my subprojects, read dependency from local snapshot, otherwise download them from the Gradle repository Thanks.