lbo*_*lar 3 scala jar sbt sbt-assembly
我已经尝试了很多与此主题相关的解决方案.最重要的是,
看起来最相关,但没有解决它.
我正在使用sbt 13.7
build.sbt:
lazy val commonSettings = Seq(
organization := "com.example",
version := "0.1.0"
)
lazy val app = (project in file(".")).
settings(commonSettings: _*).
settings(
name := "fat-jar-test"
)
Run Code Online (Sandbox Code Playgroud)
assembly.sbt:
resolvers += Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
Run Code Online (Sandbox Code Playgroud)
项目结构
root
|
src
target
project
|
build.sbt
assembly.sbt
Run Code Online (Sandbox Code Playgroud)
在sbt我成功编译,我可以成功打包,但当我运行汇编命令时,我得到:
[error] Not a valid command: assembly
[error] Not a valid project ID: assembly
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: assembly
[error] assembly
[error]
Run Code Online (Sandbox Code Playgroud)
我正在使用Intellij但是从终端运行sbt.
我在Mac OSX上.
我最初下载sbt并从他们的站点安装,正常安装.我删除并尝试从macports安装,没有区别.
我在build.sbt设置中有scala版本,但删除它因为我收到错误并且读取2.11.x不能与sbt一起使用.这阻止了错误,但我仍然有装配问题.
编辑:
我不确定build.sbt在这个结构中的位置.之前我在根目录中.在下面罗马的建议中,我已经把它移回那里,但是我收到完全相同的错误.
Rom*_*man 10
拉1级你的build.sbt.它应该驻留在项目根目录中,而不是它project.
此外,它也可以build.sbt在project文件夹中,这意味着另一件事.阅读组织构建文档以获得一些见解.
UPD:正如@marios建议的那样,你也可以将解析器放到build.sbt中.此外,为您的构建设置SNAPSHOT版本也很重要.您的全部内容build.sbt应如下:
scalaVersion in ThisBuild := "2.11.7"
lazy val commonSettings = Seq(
organization := "com.example",
version := "0.1.0-SNAPSHOT"
)
lazy val app = (project in file(".")).
settings(commonSettings: _*).
settings(
name := "fat-jar-test"
).
enablePlugins(AssemblyPlugin)
resolvers in Global ++= Seq(
"Sbt plugins" at "https://dl.bintray.com/sbt/sbt-plugin-releases",
"Maven Central Server" at "http://repo1.maven.org/maven2",
"TypeSafe Repository Releases" at "http://repo.typesafe.com/typesafe/releases/",
"TypeSafe Repository Snapshots" at "http://repo.typesafe.com/typesafe/snapshots/"
)
Run Code Online (Sandbox Code Playgroud)
然后,再向文件root/project夹添加两个文件:
root/project/build.properties 包含一行:
sbt.version=0.13.7
Run Code Online (Sandbox Code Playgroud)
root/project/plugins.sbt 还包含一行:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
Run Code Online (Sandbox Code Playgroud)
现在,删除你的root/project/assembly.sbt文件(虽然它可以代替它plugins.sbt,但我们只是尝试 - 这个配置总是适合我).
现在,您的项目布局应如下所示:
root
|
build.sbt
src
project
|
plugins.sbt
build.properties
Run Code Online (Sandbox Code Playgroud)
重新加载sbt并尝试plugins命令.你应该看到sbtassembly.AssemblyPlugin那里.
小智 5
我也遇到了同样的问题。我有正确的文件和文件夹结构。
我犯的错误是从 myproject/project 文件夹运行 sbt 程序集。尝试从顶部项目文件夹运行相同的命令。从 C:\Users* \IdeaProjects\untitled9 运行,而不是从 C:\Users* \IdeaProjects\untitled9\project运行
| 归档时间: |
|
| 查看次数: |
12612 次 |
| 最近记录: |