我尝试了很多与此主题相关的解决方案。最重要的是,
sbt assembly command not found
看起来最相关,但没有解决它。
我正在使用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"
)
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")
项目结构
root
|
src
target
project
|
build.sbt
assembly.sbt
在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]
我正在使用Intellij但是从终端运行sbt 我在Mac OSX上 我最初下载sbt并从他们的站点安装,正常安装。我删除并尝试从macports安装,没有区别 我在build.sbt设置中有scala版本,但删除它因为我收到错误并且读取2.11.x不能与sbt一起使用。这阻止了错误,但我仍然有装配问题。
编辑:
我不确定build.sbt在此结构中的位置。之前我在根目录中。在下面罗马的建议中,我已经把它移回那里了,但是我得到了完全相同的错误。
答案 0 :(得分:8)
将project
提升1级。它应该驻留在项目根目录中,而不是build.sbt
。
此外,project
文件夹中也可以build.sbt
,这意味着另外一件事。阅读Organizing Build文档以获得一些见解。
UPD:正如@marios建议的那样,你也可以将解析器放到build.sbt中。此外,为您的构建设置SNAPSHOT版本也很重要。您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/"
)
的全部内容应如下所示:
root/project
然后,将另外两个文件添加到root/project/build.properties
文件夹:
sbt.version=0.13.7
包含一行:
root/project/plugins.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
也包含一行:
root/project/assembly.sbt
现在,删除您的plugins.sbt
文件(虽然可以使用root
|
build.sbt
src
project
|
plugins.sbt
build.properties
而不是plugins
,但我们只是尝试一下 - 这种配置对我来说总是有效。“ / p>
现在,您的项目布局应如下所示:
sbtassembly.AssemblyPlugin
重新加载sbt并尝试@Component({
...
template: '<child [myCallback]="theCallback"></child>',
directives: [ChildComponent]
})
export class ParentComponent{
public theCallback(){
...
}
}
@Component({...})
export class ChildComponent{
//This will be bound to the ParentComponent.theCallback
@Input()
public myCallback: Function;
...
}
命令。你应该在那里看到COUNTESS This young gentlewoman had a father,--O, that`
。
答案 1 :(得分:0)
即使尝试了上述解决方案(如果存在问题), 他们尝试重新启动计算机 整整整整一整天都在为我解决了这个问题。
答案 2 :(得分:0)
我遇到了同样的问题。 我的文件和文件夹结构正确。
我正在做的错误是从myproject / project文件夹运行sbt程序集。 尝试从顶层项目文件夹运行相同的命令。 从C:\ Users * \ IdeaProjects \ untitled9运行 不是来自C:\ Users * \ IdeaProjects \ untitled9 \ project