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
- Host: GitHub
- URL: https://github.com/com-lihaoyi/mill
- Owner: com-lihaoyi
- License: mit
- Created: 2017-10-17T03:43:19.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T16:45:22.000Z (6 months ago)
- Last Synced: 2024-10-29T11:29:54.655Z (6 months ago)
- Topics: build-system, build-tool, java, jvm, mill, mill-plugin, scala, scala-js, scala-native, zinc
- Language: Scala
- Homepage: https://mill-build.org/
- Size: 499 MB
- Stars: 2,106
- Watchers: 49
- Forks: 341
- Open Issues: 175
-
Metadata Files:
- Readme: readme.adoc
- Contributing: CONTRIBUTING.adoc
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.adoc
Awesome Lists containing this project
- awesome-scala-native - Mill - Build tool striving for simplicity, inspired by [Bazel](https://www.bazel.build/). (Build Tools)
- awesome-java - Mill
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 tasksIf 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]