Skip to main content

Mill

Mill is a build tool initially developed by Li Haoyi in order to create something simpler and more intuitive than most of the other build tools today. There is extensive documentation on the Mill website.

Automatic installation

The first time you open Metals in a new Mill workspace you will be prompted to import the build. Select "Import Build" to start the automatic installation. This will create all the needed Bloop config files. You should then be able to edit and compile your code utilizing all of the features.

To force a Mill version you can write it to a file named .mill-version in the workspace directory.

Manual installation

Manual installation is not recommended by Metals, but it's pretty easy to do. You can choose between two server implementations.

Bloop

Using Mill with Bloop is the current preferred way by Metals.

Metals requires the Bloop config files, which you can generate with the following command:

mill --import "ivy:com.lihaoyi::mill-contrib-bloop:" mill.contrib.bloop.Bloop/install

Afterwards, you can just open Metals and start working on your code.

Mill BSP

Mill also provides a built-in BSP server. To generate the BSP connection discovery files, run the following command:

mill mill.bsp.BSP/install