【问题标题】:IntelliJ IDEA with multiple gradle subprojects具有多个 gradle 子项目的 IntelliJ IDEA
【发布时间】:2013-07-30 06:53:25
【问题描述】:

我正在处理具有内部和外部依赖项的多个 Gradle 项目,到目前为止,我很高兴借助 Gradle 的依赖项管理,我可以修改库项目而不会影响使用该库的每个应用程序。

当我需要修改库项目并使用使用它的应用程序项目对其进行测试时,我需要执行以下操作,

  • 修改库项目并提交到 SCM
  • 触发 CI 构建库项目并将其推送到我的 Gradle 存储库
  • 更新应用程序项目的build.properties 以引用新版本的库项目
  • 重复上述步骤,直到一切正常并且没有错误

所以现在它变得相当精巧。我可以配置 IntelliJ IDEA 以便

  • 我所有的 Gradle 项目都在一个窗口中,如下图所示,这是 Twitter 的 Finagle 使用其pom.xml 导入的。遗憾的是 IntelliJ 的 JetGradle 插件似乎不理解 Gradle 子项目。

  • build.properties的依赖是我的子项目时,从本地快照读取依赖,否则从Gradle存储库下载它们

谢谢。

【问题讨论】:

  • 这看起来像一个多模块的Maven项目,与多项目Gradle构建相同。您有一个多项目构建,还是多个单独的构建?
  • 目前我有多个单独的构建,但如果我可以在一个 IntelliJ 窗口中打开所有项目,我可以将它们组合为一个单一的多项目构建(使用 Gradle 子项目)。我只是不知道如何使 IntelliJ 与 Gradle 子项目一起工作,就像它与多模块 Maven 项目一样。

标签: intellij-idea gradle


【解决方案1】:

如果您想在单个 IDEA 窗口中打开所有项目,则必须将它们聚合到一个多项目构建中,至少在 IDEA 13 上市之前。在 IDEA 13 之前,最好使用 Gradle 的 IDEA 集成。一旦你有一个多项目构建,你需要做的就是将allprojects { apply plugin: "idea" }添加到根构建脚本,运行gradle (cleanIdea) idea,然后打开生成的IDEA项目。

【讨论】:

  • 我可以在一个窗口中打开所有项目,但显然 JetGradle 不喜欢这种方式...但非常感谢您提供的信息!
  • @PeterNiederwieser IDEA 13 如何解决这个问题?我正在使用 13 并且没有更好的运气。
  • 上次我检查时,Gradle 工具窗口中有一个按钮可以将另一个 Gradle 构建导入到同一个 IDEA 项目中。
  • 我找不到按钮。令我感到奇怪的是,此功能在 intelliJ 中效果不佳。它依赖于自动触发的自动导入建议,但窗口并不总是出现,并且 gradle 文件中的更改不会立即反映。我真的更喜欢在 Android Studio 中同步项目的方式,只需一个简单的按钮。
  • 即使使用 IntelliJ 2017.1,它仍然不如旧的 maven 好用。我有 2 个 gradle 项目,每个项目都有多模块。第一个项目依赖于第二个项目。发生的情况是第一个项目通过 Jenkins 创建的第二个项目 JAR 解决依赖关系,而不是通过本地解决。
【解决方案2】:

目前在 IntelliJ IDEA 2019.2 中,您可以像这样添加 gradle 子项目

  1. 通过视图 > 工具窗口 > Gradle 菜单打开 Gradle 工具窗口
  2. 点击“Link Gradle Project”按钮(加号)
  3. 选择子项目对应的build.gradle文件
  4. 转到文件 > 项目结构 > 模块 > NameOfSubproject
  5. 导航到 main/java 并单击标记为:Sources
  6. 将主要/资源标记为资源
  7. 重启 IntelliJ IDEA

子项目的来源将被 IntelliJ 识别,您可以对子项目中的类使用 Navigate Class 操作

【讨论】:

  • 标记为来源就可以了。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多