Visit https://lsif.dev/ to learn about LSIF.
- Java 1.8 or higher
- Maven (macOS:
brew install maven
)
macOS
brew cask install java
brew install maven
Ubuntu 18.04
apt-get update && apt-get install -y git default-jdk maven
git clone https://github.com/sourcegraph/lsif-java
cd lsif-java
./gradlew installDist
Step 1 Ensure you have a pom.xml
(Maven projects already have one):
For Gradle projects:
- Add
maven-publish
to yourplugins
inbuild.gradle
- Specify a publication (TODO specify the destination):
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
- Run
./gradlew generatePomFileForPubNamePublication
- You should now see
pom.xml
at the top of your project directory
Step 2 Generate an LSIF dump:
<absolute path to lsif-java>/build/install/lsifjava/bin/lsifjava \
-projectRoot <project directory> \
-out dump.lsif
Comparison to Microsoft/lsif-java
- sourcegraph/lsif-java is ~10x faster
- sourcegraph/lsif-java supports cross-file hovers/definitions/references (Microsoft/lsif-java does not)
- sourcegraph/lsif-java uses Spoon, which is built on eclipse.jdt.core
- Microsoft/lsif-java uses eclipse.jdt.ls, which is also built on eclipse.jdt.core
See microsoft/lsif-java#61 for the status of collaboration efforts.
./dev