Build Tools

Contributing

Build Tools Overview

Metals works with the following build tools with varying degree of
functionality.

Build tool

Installation

Goto library dependencies

sbt

Automatic

✅

Bloop

Automatic

If configured correctly

Maven

Manual

Gradle

Manual

Mill

Manual

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

✅: it is possible to navigate Scala+Java library dependencies using "Goto
definition".

If configured correctly: navigation in library dependency sources works as
long as the
Bloop JSON files
are populated with *-sources.jar.