Build Tools Overview
Metals works with the following build tools with varying degree of functionality.
Build tool | Installation | Goto library dependencies | Find references |
---|---|---|---|
sbt | Automatic | Automatic | Automatic |
Bloop | Automatic | Semi-automatic | Semi-automatic |
Maven | Automatic | Automatic | Semi-automatic |
Gradle | Automatic | Automatic | Automatic |
Mill | Automatic | Automatic | Automatic |
Installation
Automatic: you can import the build directly from the language server without the need for running custom steps in the terminal. To use automatic installation start the Metals language server in the root directory of your build.
Manual: setting up Metals requires a few manual steps to generate
Bloop JSON files. In addition to normal
Bloop installation, Metals requires that the project sources are compiled with
the
semanticdb-scalac
compiler plugin and -Yrangepos
option enabled.
Goto library dependencies
Automatic: it is possible to navigate Scala+Java library dependencies using "Goto definition".
Semi-automatic: navigation in library dependency sources works as
long as the
Bloop JSON files
are populated with *-sources.jar
.
Find references
Automatic: it is possible to find all references to a symbol in the project
Semi-automatic: it is possible to 'Find symbol references' as soon the SemanticDB compiler plugin is manually enabled in the build, check separate build tool pages for details.
Integrating a new build tool
Metals works with any build tool that supports the Build Server Protocol. For more information, see the guide to integrate new build tools.