Mill: A Better Build Tool for Java, Scala, & Kotlin
Mill is a build tool that tries to improve upon the tools traditionally used in the JVM ecosystem:
-
Simpler than Maven, with declarative
build.mill.yamlfiles often 1/10th the lines of apom.xml -
Easier than Gradle, with object-oriented programmable builds Java developers can intuitively understand
-
Fastest builds on the JVM, 3-6x faster than Maven or Gradle due to aggressive caching & parallelism
Although the Java compiler is very fast and the Java language is easy to learn, JVM build tools have a reputation for being sluggish, complicated, and confusing. Mill tries to offer a better alternative that gives the Java platform the developer experience it deserves.
Getting Started
To get started using Mill for the first time, or migrating an existing JVM codebase (built using Maven, Gradle, or SBT) to Mill, see:
Or see the language-specific introductory documentation linked below:
Mill Features
-
Performance: Mill automatically caches and parallelizes build tasks and tests to keep local development fast, incrementally builds assembly jars to speed up manual testing workflows, and shortens CI times with selective test execution to only run the subset of tests necessary to validate a code change. Play the video below to compare compiling the same Netty codebase with Mill (~7s) vs Maven (~54s)
-
Ergonomics: Mill’s declarative config files are concise and easy to read, its programmable config files have full IDE support in IntelliJ and VSCode, and its terminal tab-completion and syntax highlighted command-line output and error messages mean developers can easily navigate their builds and resolve issues.
-
Scalability Mill scales well from single-file programs to large monorepos with hundreds of modules and multiple languages. Mill makes building small programs convenient and large projects performant, so you never need to change toolchains as your project grows.
-
Builtins: Mill has builtin support for most common workflows: not just compile/run/test, but also managing JVM versions, linting, publishing, building executable assemblies, native binaries or installers, etc. This lets you focus on your actual project and spend less time fiddling with tooling and plugins.
Mill can be used for applications built on top of common JVM frameworks like Spring Boot (both in Java and in Kotlin), Micronaut, Ktor, or Http4S. It is used in the wild to build many real-world projects, such as:
-
Projects at Netflix, Disney-Streaming, and other organizations
Mill borrows ideas from other tools like Maven, Gradle, Bazel, and sbt, but tries to learn from the strengths of each tool and improve on their weaknesses. For comparisons with existing build tools, check out these pages:
Tool & Framework Support
Mill supports most common JVM development workflows and tools built in, so you can get very far before you need to reach for third-party plugins or write custom code to extend your build pipelines. The table below links to the relevant part of the documentation and examples for each tool:
Languages Dependency Management Testing Linting |
Packaging Publishing Web Frameworks Others |
When the time comes that you do need something not in its builtin feature set, Mill also has a rich ecosystem of third party plugins for less common use cases:
Commercial Support
Commercial support and services related to Mill are available if you need help with training, adoption, or maintenance in your organization. Contact us at:
Email us with details on what you need and we can make an arrangement.
Community
To engage with the Mill community, you can use the channels below:
-
Scala Discord, in the
TOOLING#millchannel
If you prefer a video introduction to Mill, see:
-
Video: Engineering a Better Java Build Tool Experience, Berlin Expert Days 8 Oct 2025
-
Video: Simpler Build Tools with Functional and Object Oriented Programming, Scala Workshop 13 Oct 2025
Contributing
If you want to contribute to Mill, or are interested in the fundamental ideas behind Mill rather than the user-facing features discussed above, check out the page on Mill Design Principles. In particular, this video is a must-watch to help you understand the fundamental concepts behind Mill and why they are interesting:
Mill maintains an open list of issue bounties below, with payouts ranging from 500USD to 3000USD per issue. Feel free to look through the list and try your hand at any bounties that may interest you