[英]How to create a jar using SBT in Scala?
我的項目目錄如下:
src/main/resources/
src/main/scala/
我想包裝一個罐子,所以當我將其解壓縮時將如下所示:
project.jar -> com.project <class file>
-> META-INF/MANIFEST.MF -> Class-Path: ./lib/dependence1.jar ./lib/dependence2.jar
因此,需要某種方式將依賴項jar復制到lib目錄。
如何配置build.sbt文件?
使用本機SBT package
命令將僅包含您的代碼,而沒有依賴項。
如果要在uber-jar
包含所有依賴項,那么我建議您看一下sbt-assembly插件。
這是一個示例項目( build.sbt
文件):
import sbt.Keys._
import sbt._
import AssemblyKeys._
name := "ToyProject"
lazy val coreLibrary = Project("ProjectName", file(".")).settings(customAssemblyOptions: _*).settings(
version := "0.1-SNAPSHOT"
)
lazy val customAssemblyOptions = sbtassembly.Plugin.assemblySettings ++ Seq(
test in assembly := {},
assemblyOption in assembly ~= { _.copy(includeScala = false) }, // Do not package Scala (suggested)
assemblyMergeStrategy in assembly := { // to Exclude spesific files (not entire Jars)
case PathList("lib", "static", "Windows", xs @ _*) => MergeStrategy.discard
case _ => MergeStrategy.first
},
excludedJars in assembly <<= (fullClasspath in assembly) map {
cp =>
cp filter {
c => List(
"example-2.1.jar", // Remove these jars in case you want to keep all jars from being added to the uber jar.
"example-3.3.jar"
) exists {
c.data.getName contains _
}
}
}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.