【发布时间】:2019-07-15 09:46:44
【问题描述】:
发布这个只是因为没有其他建议的解决方案有帮助。
我有一个非常简单的一类 Scala sbt 项目,它需要是一个可运行的 .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 生成一个胖 jar,我将 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?
我还忘记了什么,因为 github 页面没有说明我们需要做任何其他事情。我的 sbt 版本是sbt 1:1.2.8-1。
【问题讨论】: