8

在 IntelliJ IDEA 中运行 gradle 构建工作正常。如果我从命令行运行它,它会在 src 的每个字符上给出错误。

“任务':compileJava'执行失败。”

我猜它无法找到奇怪的编译器,因为从同一命令行运行 javac 表明它是实时的并且正在运行。

这是我真正难过的那些时刻之一。这是一个错误吗?IDEA 是否会插入一些内容来阻止您使用具有相同构建脚本的命令行?当然,IDEA 正在做的所有事情都是接触到命令行?

任何帮助都非常感谢。

编辑:

命令行上的错误包括数百种

/*** .java:89:

未闭合字符文字 '±'、'§'、'~'、'`'、'\''、^

/*** .java:94:

for (int x = 0; x < disabled.length; x++) { ^ 类型的非法开头

/*** .java:94:

')' 预期为 (int x = 0; x < disabled.length; x++) { ^

从字面上看,类文件中的每一行都会引发错误。就像我说的,使用内置构建过程的 IDEA 进行编译就像使用 Jet Gradle 插件一样。此外,在命令行上,gradle clean 任务也可以正常工作。

4

2 回答 2

5

它可能不相关,但我今天在 Intellij 中遇到了类似的问题,Gradle 命令行因许多编译失败而失败,但 Intellij 没有显示任何问题。这是在对项目模块名称进行了相当大的重构之后发生的。自然地,我认为 IDE 是错误的,因为它比命令行更复杂。我发现在两个不同的情况下我需要稍微不同的方法!!

解决方案 1

我的解决方案是 intellij Build->“Rebuild Project”,然后是“Refresh all Gradle projects”按钮,这是“Gradle”工具窗口顶部的蓝色圆形箭头按钮(View->“Tool Windows”->摇篮

解决方案 2

在另一个实例中,我还必须首先使用Ctrl-Alt-Shift-S删除所有 intellij 外部库,以打开项目 Strucutre 窗口。然后在库下将它们全部删除。然后我用上面提到的“刷新所有 Gradle 项目”跟进

我不完全确定 gradle 刷新按钮在做什么。归根结底,这两个步骤都是 IDE 带来的额外复杂层的解决方案。规则:始终相信命令行,并在它没有意义时击败你的 IDE。

于 2015-04-24T08:51:25.577 回答
1

我遇到了这个问题

.
├── build.gradle
├── hello-world
├── plugin
│   └── hello-world
└── settings.gradle

3 directories, 2 files

构建.gradle

rootProject.name = "root-hello-world"

设置.gradle

include ':hello-world'
include ':plugin:hello-world'

由于某些动机,intellij 混淆:plugin:hello-world:hello-world,在我的情况下解决它

  • 重命名hello-world模块文件夹
  • 关闭 Intellij 项目
  • 清除项目文件夹

    rm -r `find . -type d -name "build"`
    rm `find -name "*.iml"`
    rmdir `find . -type d -empty`
    rm -r .gradle/ .idea/
    
  • 再次导入项目

不确定project.name = plugin-hello-world在子模块中设置类似的东西是否有效

Obs:正如在 gradle line 命令中所说,构建始终有效,即使它在 intellij 上失败也是如此

于 2016-05-28T17:14:07.217 回答