Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IntelliJ IDEA with multiple gradle subprojects

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.

Finagle subprojects

  • When build.properties's dependencies are my subprojects, read dependency from local snapshot, otherwise download them from the Gradle repository

Thanks.

like image 709
lyomi Avatar asked Jul 30 '13 08:07

lyomi


People also ask

How import multi module Gradle project IntelliJ?

File -> Import > Gradle STS project -> Choose project root where multi-module folders reside -> click Build Model -> choose the modules I want to see in the IDE.

Can I have multiple build Gradle?

Hello , can i create multiple build. gradle for one project? Yes. You can have multiple build files in one project.


2 Answers

If you want to open all projects in a single IDEA window, you'll have to aggregate them into a multi-project build, at least until IDEA 13 hits the market. Before IDEA 13, it's better to use Gradle's IDEA integration. Once you have a multi-project build, all you need to do is to add allprojects { apply plugin: "idea" } to the root build script, run gradle (cleanIdea) idea, then open the generated IDEA project.

like image 170
Peter Niederwieser Avatar answered Sep 21 '22 12:09

Peter Niederwieser


Currently in IntelliJ IDEA 2019.2 you can add the gradle subprojects like so

  1. Open Gradle Tool Window via View > Tool Windows > Gradle menu
  2. Click on "Link Gradle Project" button (the plus sign)Link Gradle Project button
  3. Select the build.gradle file corresponding to the subproject
  4. Go to File > Project Structure > Modules > NameOfSubproject
  5. Navigate to main/java and click on Mark as: Sources enter image description here
  6. Mark the main/resources as Resources
  7. 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

like image 29
RubenLaguna Avatar answered Sep 21 '22 12:09

RubenLaguna