简体   繁体   中英

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子项目

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

Thanks.

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.

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) 链接Gradle项目按钮
  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 在此输入图像描述
  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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM