Mill 可以通过
mill assembly
生成(Uber)jar。生成的文件位于out/assembly.dest/out.jar
。
如何自定义输出文件名而不是
out.jar
?我想使用 publishVersion
的值(我正在使用 mill-vcs-version
)。
sbt 可以生成名字良好的 uberjar。
您可以通过覆盖
assembly
目标来自定义结果。
def assembly(): T[PathRef] = T {
val dest = T.dest / s"${artifactName()}-${publishVersion()}-assembly.jar"
os.copy(super.assembly().path, dest)
PathRef(dest)
}
除了
artifactName
,您还可以使用 artifactId
,它还包含 Scala 版本后缀和潜在的平台后缀。
如果您需要在多个地方进行此类自定义,您应该考虑使用 trait 模块。