Java cannot resolve Kotlin imports in a mixed Maven project despite successful compilation
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
Hướng nghiên cứu
First build the missing evidence the issue admits is absent: a minimal Java/Kotlin Maven reproducer (kotlin-maven-plugin before maven-compiler-plugin) plus the redhat.java output log with java.projectConfiguration.logs and java.project.classpath inspection, confirming whether target/classes output and src/main/kotlin are registered in the JDT-LS project model. Then check how m2e computes classpath entries and whether java.autobuild.enabled: false prevents the .class file from being picked up. Done means either unresolved-import diagnostics disappear for the reproducer, or the limitation is confirmed and documented with a recommended configuration.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
In a mixed Java/Kotlin Maven project, the Java extension cannot resolve an import of a public Kotlin class defined in the same project. Maven compilation succeeds, and the corresponding .class file exists, but the editor continues to report unresolved import and type errors.
Example diagnostics (package and class names anonymized):
The import com.example.SampleTable cannot be resolved
SampleTable cannot be resolved to a type
The problem persists after running Java: Reload Projects and Java: Clean Java Language Server Workspace.
To Reproduce
Steps observed in the existing project:
- Open a mixed Java/Kotlin Maven project in VSCode, with Java sources under
src/main/javaand Kotlin sources undersrc/main/kotlin. - Configure Maven to compile Kotlin before Java using
kotlin-maven-pluginandmaven-compiler-plugin. - Import and use a public Kotlin class from a Java file in the same project.
- Run Maven compilation manually. The build completes with
BUILD SUCCESS. - Open the Java file. The import and usages of the Kotlin type are marked as unresolved.
- Reload the Java projects and clean the Java language server workspace. The diagnostics persist.
Sample project: An independent minimal reproducer has not yet been prepared. The steps above describe observations in the existing project.
Logs: The same unresolved import and type diagnostics were found in the Java language server log. No log file is attached yet.
Expected behavior
The Java extension should resolve the Kotlin type in the same Maven project, including after Maven has successfully compiled it. If this scenario is unsupported, guidance on the limitation and recommended configuration would be helpful.
Screenshots
No screenshots attached. The diagnostic text is included above.
Environment
- Operating System: Windows_NT x64 10.0.19045 (VSCode client); the project and extensions are on Linux via VSCode Server. The remote connection method is not specified here.
- JDK version: Not yet confirmed for either the Java language server or Maven. The project's Java/Kotlin JVM compilation target is 11.
- Visual Studio Code version: 1.122.1 (user setup), commit
8761a5560cfd65fdd19ce7e2bd18dab5c0a4d84e. - Java extension version:
redhat.java1.56.0. - Kotlin extension version:
fwcd.kotlin0.2.36. - Kotlin Maven plugin version: 2.0.0.
- Maven version: Not yet confirmed.
Additional Information
- The Kotlin class is public, and its package matches the Java import.
- The generated class exists under
target/classesand can be inspected usingjavap. - The inspected cached Java language server classpath does not include a source entry for
src/main/kotlin. It liststarget/classesas an output directory. These are observations, not a confirmed root cause. - The workspace setting
java.autobuild.enabledisfalse. Maven compilation was run manually; the effect of enabling automatic builds has not been tested. - Is this a known limitation of Java/Kotlin interoperability, or a type-resolution defect? Is there an existing issue or a recommended configuration for this setup?
- Ngôn ngữ chính
- TypeScript
- Star
- 2.3k
- Fork
- 549
- Merge trung bình
- 8 giờ 20 phút
- Pull request đã merge (30 ngày)
- 6
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của redhat-developer/vscode-java
-
JDK_HOME can be sorted after lower-priority auto-detected JDK sourcesCó thể đã có người làm @shblue21 đã nhận 115 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
redhat-developer/vscode-java#4426 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug Lombok
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
redhat-developer/vscode-java#4521 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug need info
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
redhat-developer/vscode-java#4520 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
redhat-developer/vscode-java#4517 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Red Hat Not ActivatingĐang mởbug documentation
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
redhat-developer/vscode-java#4516 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của redhat-developer/vscode-java
Issue tương tự
-
[bug] diagnostics.dumpBody:Buffer 形态请求(透传 lane)跳过 dumps/ 落盘,仅留 raw/-unknown-Có thể đã có người làm @ranxianglei đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
ranxianglei/billion-context#2421 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
pending triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
nuxt/test-utils#1842 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
MoonshotAI/kimi-code#4146 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
farbenmeer/tapi#531 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày