使用one-jar
1) build.sbt文件,修改为以下内容
import com.github.retronym.SbtOneJar._
oneJarSettings
//上面是导入的onejar
name := "xxxx"
version := "1.0"
scalaVersion := "2.11.7"
//这个是需要运行的主类或者object
mainClass in oneJar := Some("com.test.MainServer")
2) project\plugins.sbt
//添加插件依赖
addSbtPlugin("com.github.retronym" % "sbt-onejar" % "0.7")
3) project\Build.scala
import com.github.retronym.SbtOneJar
import sbt._
import sbt.Keys._
object Build extends Build {
scalaVersion := "2.11.7"
// 添加onejar设置
def standardSettings = Seq(
exportJars := true
)
// defaultSettings 自定义的,一些依赖或者参数,具体项目具体定义,也可以去掉
lazy val project = Project("xxxx",
file("."),
settings = defaultSettings ++ standardSettings ++ SbtOneJar.oneJarSettings
)
}
4) 然后使用命令行进入当前代码的目录,启动sbt,执行one-jar
> one-jar
[info] Updating {file:/E:/scalaProject/xxxxx/}xxxxxx...
Waiting for lock on C:\Users\xxxxxx\.ivy2\.sbt.ivy.lock to be available...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[info] Packaging E:\scalaProject\xxxxxx\target\scala-2.11\xxxxxxx_2.11-1.0-one-jar.jar ...
[info] Done packaging.
[success] Total time: 10 s, completed 2016-xx-xx 11:41:00
最后查看一下这个jar包,由于当前项目依赖比较多,文件比较大,有27M左右,
测试运行一下
java -jar E:\scalaProject\xxxxxx\target\scala-2.11\xxxxxxx_2.11-1.0-one-jar.jar
很好,代码启动了.