Skip to content

Mill is a fast JVM 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

License

Notifications You must be signed in to change notification settings

com-lihaoyi/mill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d2e1e98 · Mar 25, 2025
Mar 24, 2025
Mar 14, 2025
Mar 21, 2025
Mar 14, 2025
Mar 25, 2025
Mar 25, 2025
Mar 19, 2025
Mar 21, 2025
Mar 21, 2025
Mar 18, 2025
Mar 21, 2025
Mar 8, 2025
Mar 21, 2025
Feb 1, 2025
Mar 6, 2025
Mar 14, 2025
Mar 11, 2025
Mar 25, 2025
Mar 17, 2025
Mar 21, 2025
Mar 22, 2025
Mar 25, 2025
Nov 15, 2024
Mar 13, 2025
Mar 19, 2025
Feb 25, 2025
Feb 1, 2025
Feb 8, 2025
Mar 13, 2025
Aug 14, 2023
Oct 29, 2024
Jul 12, 2023
Mar 25, 2025
Mar 18, 2025
Mar 14, 2025
Jan 20, 2025
Mar 4, 2025
Mar 25, 2025

Repository files navigation

Mill Logo Mill

Mill Maven Central Version

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

  • Mill builds the same Java project 3-6x faster than Maven or Gradle due to aggressive caching & parallelism

  • Mill has better IDE support than other build tools, with superior autocomplete and navigation in IntelliJ

  • Mill builds require fewer plugins for common workflows, and are easier to extend with custom tasks

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 = Seq(
    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() ++ Seq(
      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, ...