Mill review
A programmable JVM build tool with caching, parallelism, packaging, and IDE integration.
Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026
Mill is an open-source JVM build tool for Java, Scala, and Kotlin projects. It is designed for teams working on applications and multi-module repositories that need programmable or declarative build definitions, dependency management, compilation, testing, packaging, and publishing. Builds can be defined with programmable, type-checked JVM code in Scala-based .mill files or with build.mill.yaml. Its multi-platform support covers Linux, macOS, and Windows.
For build performance, Mill automatically caches and invalidates tasks, runs tasks in parallel, and supports incremental builds and selective test execution. Remote build caching uses the Bazel remote-cache protocol, making the tool a fit for teams that want shared cache infrastructure alongside local task caching. Dependency resolution works through Coursier and Maven repositories. Executable assembly JAR generation, publishing to local repositories, and publishing to Maven Central extend it beyond compilation and testing into delivery workflows.
The ecosystem fit is practical for JVM teams: Mill integrates with IntelliJ IDEA, Visual Studio Code, and the Build Server Protocol, while its publishing and dependency workflows connect with Maven Central and Coursier. It also includes tasks for native images and installers. Teams choosing Mill should be comfortable with Scala-based build definitions or its YAML format and should primarily work within the Java, Scala, or Kotlin ecosystem. It is a strong match for projects that value programmable builds, remote caching, and multi-module execution; teams seeking a build system outside that JVM focus should consider a different tool.
Mill pros and cons
- Where it wins
- Programmable and declarative build definitions
- Automatic caching, invalidation, and parallel task execution
- Bazel remote-cache protocol and IDE/BSP integration
- Where it doesn't
- Focused on Java, Scala, and Kotlin JVM projects
- Scala-based definitions may require JVM build expertise
- Open-source distribution does not provide plan-based commercial tiers
Mill fact sheet, pricing and score →
Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.
Last updated · How we research and update