Java modules are not handled properly
tgodzik opened this issue · 2 comments
Copied from scalameta/metals#4847
Describe the bug
Actually, I was trying to create a sample project, for a more complicated bug, but then I noticed that my "minimal project" doesn't seem to work without any changes
https://github.com/JPro-one/HelloJPro.
Screenshot 2023-01-11 at 22 21 58
This is a pure Java project. The question is, is that supposed to work?
I'm asking because Metals it's a scala language server.
When I look into my other projects, the Java parts sometimes work with Metals/Bloop, and sometimes not.
But Metals/Bloop is always trying to compile it, so I guess it's in the scope of the project.
So, I thought I start by posting the most simple case as a bug report.
If you wonder why I post this, I usually have a lot of mixed Scala/Java projects.
Expected behavior
No response
Operating system
macOS
Editor/Extension
None
Version of Metals
v1.21.0
Extra context or search terms
No response
I was playing around with it again, and this is the main issue that stops me from using VisualCode.
I have many mixed Java/Scala projects, and the latest IntelliJ Version is becoming increasingly unstable.
solution?
It seems like many of the problems can be solved by just using --module-path instead of -cp when a module-info.java exists.
This would probably make most modern projects compile - maybe after fixing a dependency that doesn't work as a module yet.
help
I would like to invest some time to make this work - if someone can guide me on how to do so.
Is there a way to find out the javac command used when running bloop compile <project>
?
With some help I might even be able to make a PR fo this.
I haven't found time to work on it unfortunately, so I would be glad to get some help. The part dealing with the Java Compiler is actually not that hard. Take a look at:
And if you would need to write tests you could probably use the examples in
Though not sure if those tests would be enough, you can also use sbt project such as the ones in https://github.com/scalacenter/bloop/tree/main/frontend/src/test/resources
You should be able to use the like in
If you need more help do let me know! Unfortunately, I don't know much around modules aside from the fact that we should deal with them better.