Как настроить build.sbt с помощью плагина sbt-assembly? - PullRequest
0 голосов
/ 21 февраля 2019

Публикация этого только потому, что никакие другие предложенные решения не помогли.У меня есть очень простой одноклассный проект sbt Scala, который должен быть исполняемым файлом .jar.У него есть некоторые java-зависимости, поэтому sbt package мне не подойдет, мне нужен толстый кувшин.Проект имеет следующую структуру.

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

Он имеет один основной класс и одну тестовую спецификацию.Чтобы заставить sbt генерировать толстую банку, я добавил assembly.sbt в project dir и соответственно изменил мой 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? 

Что еще я забыл, потому что на сборочной странице github не указано, что нам нужно делать что-то еще.Моя версия sbt sbt 1:1.2.8-1.

1 Ответ

0 голосов
/ 21 февраля 2019

В вашем каталоге project вам нужно добавить файл plugins.sbt, который включает следующее:

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

Затем удалите AssemblyKeys._ и обновите sbt.Только после успешного обновления вы сможете вставить этот импорт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...