Gradle编译Kotlin时报错‘Java源根指向不存在位置’的问题
Gradle编译ANTLR生成代码时的路径错误问题
错误信息
> Task :core:compileKotlin FAILED w: Java source root points to a non-existent location: C:\Users\pchol\IdeaProjects\space-empires\core\src\main\generated\com\pcholt\se\OrdersBaseListener.java w: Java source root points to a non-existent location: C:\Users\pchol\IdeaProjects\space-empires\core\src\main\generated\com\pcholt\se\OrdersLexer.java
问题详情
编译项目时触发上述错误,搜索错误提示“Java source root points to a non-existent location”未找到有效解决方案。实际文件确实存在,在IntelliJ中可正常打开且IDE无报错,但无论是IDE运行还是Windows命令行执行编译都会报错。
这些报错文件由ANTLR插件自动生成,相关Gradle配置如下:
processResources { dependsOn generateGrammarSource } generateGrammarSource { outputDirectory = file("src/main/generated") } sourceSets { main { java { srcDirs = ["src/main/kotlin", "src/main/generated"] } } }
删除项目根目录下的.gradle文件夹后重新构建,可正常生成jar包并运行,但后续修改代码后错误会再次出现。已在gradle.properties中关闭Gradle缓存:
org.gradle.caching=false
环境信息
- Kotlin版本:1.7.22
- Gradle JVM版本:16
- ANTLR版本:4.11.1
- 本地Java版本:
PS C:\Users\pchol> java --version java 17.0.2 2022-01-18 LTS Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86) Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)
更新补充(2022年12月23日)
该问题并非Windows平台独有,在Linux环境下检出代码编译时同样报错:
> Task :core:compileKotlin FAILED w: Java source root points to a non-existent location: /home/ph/IdeaProjects/se/core/src/main/generated/com/pcholt/se/OrdersLexer.java w: Java source root points to a non-existent location: /home/ph/IdeaProjects/se/core/src/main/generated/com/pcholt/se/OrdersListener.java
使用OpenJDK编译时也会出现相同问题:
ph@po:~/IdeaProjects/se$ java --version openjdk 17.0.4 2022-07-19 OpenJDK Runtime Environment (build 17.0.4+8-Ubuntu-120.04) OpenJDK 64-Bit Server VM (build 17.0.4+8-Ubuntu-120.04, mixed mode, sharing)
内容的提问来源于stack exchange,提问作者Anarchofascist
相关产品推荐
相关产品推荐

