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, ...