mill :Java,Scala和Kotlin的更好的构建工具
mill是一种构建工具,试图改进JVM生态系统中传统上使用的工具:
由于激进的缓存和并行性, mill比Maven或Gradle构建相同的Java项目3-6倍
mill的丰富功能集意味着减少插件的摆弄,因为内置的所有开发所需的一切
在IDE中可以探索mill构建
尽管Java编译器非常快,并且Java语言易于学习,但JVM构建工具以缓慢和混乱而闻名。 mill试图提供更好的替代方案,其面向对象的构建可以减少学习曲线,并让您的构建系统充分利用Java平台的性能,可用性和IDE支持。
如果您想在自己的项目中使用mill ,请查看我们的文档:
文档
这是一些快速的例子,以便您可以想象它的外观:
mill._, javalib._
object foo extends JavaModule {
def mvnDeps = Seq(
mvn"net.sourceforge.argparse4j:argparse4j:0.9.0",
mvn"org.thymeleaf:thymeleaf:3.1.1.RELEASE"
)
object test extends JavaTests, TestModule.Junit4 {
def mvnDeps = Seq(
mvn"com.google.guava:guava:33.3.0-jre"
)
}
}">
package build import mill . _ , javalib . _ object foo extends JavaModule { def mvnDeps = Seq ( mvn " net.sourceforge.argparse4j:argparse4j:0.9.0 " , mvn " org.thymeleaf:thymeleaf:3.1.1.RELEASE " ) object test extends JavaTests , TestModule . Junit4 { def mvnDeps = Seq ( mvn " 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
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, ...">> ./ mill foo.compile # compile sources into classfiles ... compiling 1 Java source to... > ./ mill foo.run --text hellohello
> ./ mill foo.test ... Test foo.FooTest.testEscaping finished, ... Test foo.FooTest.testSimple finished, ... Test run foo.FooTest finished: 0 failed, 0 ignored, 2 total, ...
开发人员文档
ChangElog
下载源码
通过命令行克隆项目:
git clone https://github.com/com-lihaoyi/mill.git