com-lihaoyi / mill   0.12.7

MIT License Website GitHub

Mill is a fast build tool that supports Java, Scala, Kotlin and many other languages. 2-4x faster than Gradle and 4-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible

Scala versions: 2.13 2.12

Mill Logo Mill

Mill Maven Central Version

Mill is a fast, scalable, multi-language build tool that supports Java, Scala, Kotlin, and Python:

  • Mill can build the same Java codebase 4-10x faster than Maven, or 2-4x faster than Gradle

  • Mill comes builtin with all the tools needed to develop and publish your project without needing plugins

  • Mill’s typed config language and immutable task graph helps keep builds clean and understandable

  • Mill scales well from small projects to large multi-language monorepos with hundreds of modules

If you want to use Mill in your own projects, check out our documentation:

Here is some quick example, so that you can imagine how it looks:

package build
import mill._, javalib._

object foo extends JavaModule {
  def ivyDeps = Agg(
    ivy"net.sourceforge.argparse4j:argparse4j:0.9.0",
    ivy"org.thymeleaf:thymeleaf:3.1.1.RELEASE"
  )

  object test extends JavaTests with TestModule.Junit4 {
    def ivyDeps = super.ivyDeps() ++ Agg(
      ivy"com.google.guava:guava:33.3.0-jre"
    )
  }
}
> ./mill foo.compile # compile sources into classfiles
...
compiling 1 Java source to...

> ./mill foo.run --text hello
<h1>hello</h1>

> ./mill foo.test
...
Test foo.FooTest.testEscaping finished, ...
Test foo.FooTest.testSimple finished, ...
Test run foo.FooTest finished: 0 failed, 0 ignored, 2 total, ...