您的位置:首页 > 其它

sbt使用one-jar对scala统一打包成一个jar文件

2016-05-25 00:00 330 查看
摘要: sbt打包jar,合并jar

使用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

很好,代码启动了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: