redhat-developer/vscode-java

Gradle support

Closed this issue ยท 37 comments

Should detect build.gradle in addition to pom.xml

+1. Maven has been all but replaced by Gradle on any new projects that I know of. Without Gradle support, the plugin is not really usable :-/

ivanz commented

In case it helps someone out there (note that I am new to Java) - I was able to workaround the lack of direct Gradle support by using the 'eclipse' gradle plugin to generate an Eclipse project:

  1. Add apply plugin: 'eclipse' to your gradle file
  2. Generate the classpath/project files on the console/terminal via gradlew eclipse

Intellisense works after that.

I've also tried to use the maven plugin, but the vscode-java plugin bombs out when loading the pom-default.xml (assuming it's even trying to load it)

+1

My guess is pom-default.xml fails because we look for pom.xml files only. @fbricon can you confirm?

yes, we only look at pom.xmls

This is a fairly important feature which is missing from this project - has any work been done twoards completing this?

Just a note: latest Gradle is focusing on Kotlin support, so it would be good if that was supported

https://blog.gradle.org/kotlin-scripting-update

@tills13 I believe @fbricon did have a look at using buildship last week.

+1 i also need gradle support for learning libGDX in vscode. i love VSCode because lightweight but powerfull and crossplatform. the bad thing is it is still new.

+1 Gradle support

@jacek99 we (as a 2 committers team) have no plans on providing a gradle editor for vscode, whether it's in groovy or kotlin. I believe this could be done in a 3rd party vscode plugin.

Our main objective is for gradle-based projects to be configured for java support. Basically, if you can import the gradle project in Eclipse (with Buildship), we should be able to do the same in VS Code. That said, I have no idea if kotlin is or will be supported in Buildship. If that was the case though, any changes to the build file (groovy or kotlin) should be able to trigger classpath updates (provided we add that feature).

+1 for Gradle support

Hello, I work for Sourcegraph, and we're interesting in using this Java language server to power our online code analysis and browsing tools. Just wondering if there's a concrete plan/timeline for adding Gradle (and Android) support, as well as making this the de-facto standard server for supporting all Java projects -- we'd definitely be willing to help contribute, if this turns out to be the right solution for our needs!

(referencing eclipse-jdtls/eclipse.jdt.ls#40, and cc-ing a couple other interested parties: @sqs @rothfels)

@akhleung It happens so that @fbricon is looking for volunteers to test his initial Gradle implementation. I think on a best case scenario we are looking at a Late November release. Perhaps, you can help with this work.

Can you elaborate what you mean by "the de-facto standard server for supporting all Java projects"

Great, we'd definitely be interested in helping to test Gradle support. @fbricon Is there some code we could look at, just to acquaint ourselves with the implementation (and maybe even contribute to)?

@gorkem Regarding my comment about "de facto standard", we'd ideally like a single high-quality LSP server that provides code analysis for all kinds of Java projects, whether they're using Maven, Gradle, etc. If this is on the roadmap for your project, then we'd be interested in contributing developer time to help make it happen.

@akhleung We do want the java language server to be the high-quality LSP server for Java. I think we are already moving on that direction. As you are aware, this project (vscode-java) only hosts the vscode extension that uses the server. Otherwise the server project is hosted on a different repo and is going to be moved to Eclipse as a subproject of Eclipse JDT. We are waiting for the paperwork to complete for all initial contributors to complete the move.

The server is not vscode specific. Eclipse Orion project is already using it for its Java support and we are working with Eclipse Che to replace theirs. IMHO if we have cases like yours which are slightly different from a code editor it will make the implementation better.

Java is a language with many excellent choices for tools. We prefer to use existing information maintained for existing tools such as build tools to resolve our projects. We have started with Maven, for no reason but when I was doing the initial PoC development @fbricon ,who is a committer for m2e, was available to jolt start my implementation.

This all sounds great! Regarding the code, I've been looking through your java language server repo, but so far I haven't been able to find anything related to Gradle support, hence my asking specifically about @fbricon's contributions.

@akhleung I'll submit an initial PR later today or tomorrow

PR is not fully functional yet. Seems to work for simple examples, but I don't have reliable results yet on real world projects. Still looking into it.

As mentioned on eclipse-jdtls/eclipse.jdt.ls#40, looks like we won't be able to get android support any time soon.

If anyone can provide links to some real-world-not-android-gradle-based projects on github, I'm interested.

I have some build gradle for wars and jars if interested I can share them, let me know
Im using now eclipse gradle plugin to create the files and the java support works great, anyway not having to do that would be great

@scgm11 if they're available on github, let me know

is not an open soure project but I can provide the build.gradle if you want to check uses of gradle maybe as a gist??

you can just create a dummy project with that gradle file, throw in a couple of classes referencing some of the dependencies.
I tried your fork of https://github.com/scgm11/asterisk-java, and it seems to work so far.

ok, I'll do that in some minutes and let you know

OK ready they are in my profile GradleTest1 generate a jar GradleTest2 generate a war and depends on the output build of GradleTest1, let me know if is ok or not.

thanks!

was that useful??

Basic Java Gradle seems to work now. However, we can't provide Android support for now, as BuildShip (that we depend on), doesn't support it.

Closing.

Any updates?

Please add Android Gradle support! That is a significatn chunk of the Java code out there.

It's pretty annoying to jump back and forth between VS Code and Android Studio for a React Native app on Android. My tasks require writing a lot of native modules in Java, and with the lack of Android dev support, I'm not sure this extension is worth it for my use case.

For those interested in Java support for Android, the latest version of the Android Extension now includes Java Intellisense based upon the Android SDK.
Java language support is not as fully featured as the vscode-java extension, but I'd be happy to add more features as developers require - or you can help out with the project by submitting issues, suggestions or PRs.