如何使用sbt程序集插件设置build.sbt?

44u64gxh  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(378)

张贴这只是因为没有其他建议的解决方案帮助。我有一个非常简单的单类scala sbt项目,它需要一个runnable.jar文件。它有一些java依赖,所以 sbt package 不适合我,我需要一个胖jar。该项目的结构如下。

├── build.sbt
├── project
│   ├── assembly.sbt
│   ├── build.properties
│   ├── project
│   └── target
├── README.md
├── src
│   ├── main
│   └── test
├── target
│   ├── scala-2.12
│   ├── specs2-reports
│   ├── streams
│   └── test-reports

它有一个主类和一个测试规范 assembly.sbt 进入 project 并修改了我的 build.sbt 相应地。

import AssemblyKeys._

name := "myproj"

version := "1.0"

scalaVersion := "2.12.8"

libraryDependencies ++= Seq(
  "au.com.bytecode" %% "opencsv" % "2.4",
  "org.specs2" %% "specs2-core" % "4.3.0" % "test"
)

scalacOptions in Test ++= Seq("-Yrangepos")

assemblyMergeStrategy in assembly := {
  case PathList("META-INF", xs @ _*) => MergeStrategy.discard
  case x => MergeStrategy.first
}

然而, import AssemblyKeys._ 是红色的 cannot resolve symbol ? 从控制台试一下会让我

import AssemblyKeys._
       ^
[error] Type error in expression
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?

我还忘了什么,因为assebly github页面没有声明我们需要做任何其他事情。我的sbt版本是 sbt 1:1.2.8-1 .

2w3rbyxf

2w3rbyxf1#

在你的 project 目录,您需要添加 plugins.sbt 包含以下内容的文件:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.15.0")

然后,删除 AssemblyKeys._ 刷新sbt。只有在成功刷新后,才能插入该导入

相关问题