【问题标题】:IntelliJ execute gradle test from root projectIntelliJ 从根项目执行 gradle 测试
【发布时间】:2016-01-15 16:11:20
【问题描述】:

我的 IntelliJ 中有一个 gradle 多项目导入端,我想执行一些测试类。

结构如下:

root
|-module-a
|-module-b

module-a依赖于module-b,所以在build.gradle

dependencies {
    compile project('module-b');
}

当我从 shell 中使用 gradle 时一切正常,我必须进入 root 项目目录并写入:

./gradlew :module-a:test

所有的东西都经过了测试。

当我在 IntelliJ 中单击“Run 'Tests' in 'module-a'”时,出现以下错误:

A problem occurred evaluating root project 'module-a'.
> Project with path ':module-b' could not be found in root project ':module-a'.

看来,IntelliJ 是从 module-a 而不是从 root 执行 gradle 命令(这应该是 gradle 想要的正确行为)。

如何在 IntelliJ 中执行这个测试?我必须配置什么?

【问题讨论】:

  • 你能说,settings.gradle 文件在哪里?它曾经与 module-a 和 module-b 文件夹位于同一文件夹中,以便可以运行不是来自项目文件夹的任务。因此,您可以尝试将其从模块-a 文件夹/ 移至根文件夹
  • 我在每个文件夹里都有一个settings.gradle:module-a、module-b和root
  • 通常情况下,settings.gradle 只存在于根文件夹,不存在于子项目中。

标签: java testing intellij-idea gradle


【解决方案1】:

对于看起来像这样的多项目结构

root
|-module-a
|-module-b

根目录下只有一个settings.gradle,内容为:

include 'module-a', 'module-b'

子项目文件夹不包含 settings.gradle 文件。然后您将兄弟项目称为:

project(':module-b')

所以你的依赖将被声明为:

dependencies {
  compile project(':module-b');
}

see here了解有关多项目结构的更多信息。

【讨论】:

  • 我知道这是旧的,但如果有人像我一样在寻找这样的东西,我发现这个答案间接地很有帮助。这让我想到了我的 intellij 设置出了什么问题。我尝试更改运行配置,使其指向我的根项目的“build.gradle”而不是我的子项目,然后将“运行”作为任务更改为“子项目:运行”。对我来说就是这样,我一直在试图弄清楚为什么我的 gradle 运行正常但无法从 intellij 运行它。谢谢。
猜你喜欢
  • 2018-08-14
  • 2016-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多