A Deep Dive into the Mill Scala Build Tool
summary
Claims Mill beats SBT on speed and usability by modeling builds as a captured task graph and a filesystem-shaped module tree. Examples include a single Scala module, a custom incremental line-count task, and a DIY Java-module system that compiles, jars and assembles artifacts; Mill shows assemblies by default and can publish to Maven Central without plugins. Mill provides caching, parallel execution, Chrome flame profiles and CLI introspection; several large Scala projects run Mill in production, so the approach demonstrably works.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 0:33Why are build tools hard
- 4:00Why are build tools a mess
- 6:53Single Scala Module
- 9:13Line Count Task
- 13:43Multiple Scala Modules
- 15:23Getting Started
- 16:41Tasks
- 21:50Modules
- 23:40Traits
- 25:04DIY Java Modules
- 27:59Final Build Graph
- 29:25Traverse
- 29:52Paralyzable
- 31:30Business logic
- 32:23Scala modules
- 33:20Recap
- 33:54Core Concepts
- 39:45Call Graph
- 40:56Programming 101
- 42:19Conclusion
related talks
47mEasy Scala Builds with the Mill Build Tool
45mSimpler Scala Builds with Functional and Object-Oriented Programming
30mScripting on the JVM with Scala
50mHow to Test a Milion Lines of Code without Writing a Single Test
48mMassively Parallel Distributed Scala Compilation And You
32mSpeedy Scala Builds at Databricks
46mBuilding Scala with Bazel
48msbt: Beyond the Build Tool
