【问题标题】:How to setup multi-project IntelliJ workspace with Gradle?如何使用 Gradle 设置多项目 IntelliJ 工作区?
【发布时间】:2020-07-13 17:33:15
【问题描述】:

您好,我正在使用 Gradle 构建一些服务。我倾向于为每个“代码包”(即库或服务)拥有单独的存储库。

在 IntelliJ 中,我的设置往往如下:

- IntelliJ Workspace
-- Service A
--- pom.xml
-- Service B
--- pom.xml
-- Library A
--- pom.xml
-- Library B
--- pom.xml

服务 A 和 B 都依赖于库 A 和 B。这很好用,在单个 IntelliJ 工作区中,我可以修改库 A 和 B 并启动服务,一切都很好。

我知道您可以使用 Gradle 进行复合构建和多模块构建,但就像我说的,上面所有 4 个模块都是单独的存储库,所以这不会很好。

IntelliJ 是否支持与 Gradle 类似的设置,其中它认识到库 A 和 B 是服务 A 和 B 所依赖的库?还是每个人都为此始终手动发布到本地 Maven?

谢谢!

【问题讨论】:

    标签: gradle intellij-idea


    【解决方案1】:

    重新表述您的问题 -
    有 3 个独立的 gradle 项目 service1、lib1、lib2
    service1 依赖于 lib1 和 lib2

    预期是

    1. 用于本地开发 - 所有 3 个项目的源都存在于本地 - 使用本地代码构建
    2. 如果本地源不存在,请参考存储库工件

    假设这样一个简单的文件夹结构。

    app-code
    - service1
    - lib1
    - lib2
    

    service1 - settings.gradle

    rootProject.name = 'service1'
    
    include ':lib1'
    project(':lib1').projectDir = new File('../lib1')
    
    include ':lib2'
    project(':lib2').projectDir = new File('../lib2')
    

    service1 - build.gradle

    dependencies {
        implementation (project(':lib1').projectDir.exists() ? project(':lib1') : 'com.lib1:lib1:1.0.0')
        implementation (project(':lib2').projectDir.exists() ? project(':lib2') : 'com.lib2:lib2:1.0.0')
    }
    

    intellij 导入的外观

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多