An open API service indexing awesome lists of open source software.

https://github.com/com-lihaoyi/mill

Mill is a fast JVM build tool that supports Java and Scala. 2-4x faster than Gradle and 5-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible
https://github.com/com-lihaoyi/mill

build-system build-tool java jvm mill mill-plugin scala scala-js scala-native zinc

Last synced: 6 days ago
JSON representation

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

Awesome Lists containing this project

README

        

= image:website/docs/logo.svg[Mill Logo] Mill
:idprefix:
:idseparator: -
:link-github: https://github.com/com-lihaoyi/mill
:link-current-doc-site: https://mill-build.org
:link-mill-moduledefs: https://github.com/com-lihaoyi/mill-moduledefs
:example-scala-version: 3.3.4
:toc:
:toc-placement: preamble
ifndef::env-github[]
:icons: font
endif::[]
ifdef::env-github[]
:caution-caption: :fire:
:important-caption: :exclamation:
:note-caption: :paperclip:
:tip-caption: :bulb:
:warning-caption: :warning:
endif::[]

https://github.com/com-lihaoyi/mill/blob/main/changelog.adoc[image:https://index.scala-lang.org/com-lihaoyi/mill/mill-main/latest.svg[Mill]]
https://central.sonatype.com/artifact/com.lihaoyi/mill-dist[image:https://img.shields.io/maven-central/v/com.lihaoyi/mill-dist?label=latest-unstable&versionPrefix=0.12.[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:

* {link-current-doc-site}[Documentation]

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

[source,scala,subs="verbatim,attributes"]
----
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"
)
}
}
----

[source,bash]
----

> ./mill foo.compile # compile sources into classfiles
...
compiling 1 Java source to...

> ./mill foo.run --text hello

hello

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

----

* https://github.com/com-lihaoyi/mill/blob/main/developer.adoc[Developer Documentation]
* https://github.com/com-lihaoyi/mill/blob/main/changelog.adoc[Changelog]