IntelliJ IDEA with multiple gradle subprojects

2019-04-05 00:21发布

问题:

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.

回答1:

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.