Scala 使sbt组件正常工作

Scala 使sbt组件正常工作,scala,jar,sbt,typesafe-stack,sbt-assembly,Scala,Jar,Sbt,Typesafe Stack,Sbt Assembly,到目前为止,我一直在用SBT(通过类型安全堆栈)编译Scala项目。我想现在通过在多台机器上运行代码。按照说明,我所做的唯一更改是在我的project/Build.scala文件中。以下是相关部分: resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases", resolvers += "artifactory" at "http://scalasbt.artifactoryonline.com

到目前为止,我一直在用SBT(通过类型安全堆栈)编译Scala项目。我想现在通过在多台机器上运行代码。按照说明,我所做的唯一更改是在我的
project/Build.scala
文件中。以下是相关部分:

resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases",
resolvers += "artifactory" at "http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases",
libraryDependencies += "com.eed3si9n" % "sbt-assembly" % "0.8.3"
然而,当我运行
sbt compile
时,我得到以下错误:

sbt.ResolveException:未解析的依赖项:com.eed3si9n#sbt assembly/scala_2.9.1/sbt_0.11.2;0.8.3:未找到

我做错了什么

谢谢

编辑 在与
build.scala
(文件夹为
/project/
)相同的文件夹中创建了
build.sbt
文件,其中包含以下两行内容:

Seq[Setting[_]](resolvers += "artifactory" at "http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases",
                addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.8.3"))
现在的错误是:

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.eed3si9n#sbt-assembly;0.8.3: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn] 
[warn]  Note: Some unresolved dependencies have extra attributes.  Check that these dependencies exist with the requested attributes.
[warn]      com.eed3si9n:sbt-assembly:0.8.3 (sbtVersion=0.11.2, scalaVersion=2.9.1)
[warn] 
[error] {file:/Users/myname/current/projectname/project/}default-d7da9a/*:update: sbt.ResolveException: unresolved dependency: com.eed3si9n#sbt-assembly;0.8.3: not found
编辑2 嗯,在我成功编译了
sbt
之后,我是否应该能够进入
sbt
控制台并键入
assembly

> assembly
[error] Not a valid command: assembly
[error] Not a valid project ID: assembly
[error] Not a valid configuration: assembly
[error] Not a valid key: assembly
[error] assembly
[error]   

编辑3 JK明白了。必须添加GitHub自述文件中指定的
build.sbt
信息。

这里有两点。一个是SBT插件不仅仅是库依赖项——特别是,它们使用当前SBT版本的方式与其他Scala库使用Scala版本的方式类似。另一个是
project/Build中的
libraryDependencies
。scala
影响项目的依赖关系,而不是构建的依赖关系

SBT完整构建本身就是一个SBT项目,只位于目录树的下一层,因此可以像普通构建一样配置自己的构建。与正常构建不同,在少数情况下需要进行“完整构建”,几乎没有理由对构建使用完整构建,因此使用
.sbt
文件(位于
project/
中)几乎总是足够的

另一个问题是版本控制。SBT有一个名为
addSbtPlugin
的实用函数,可以为您处理所有事情。它采用moduleID并添加所有必要的SBT和Scala版本控制信息

因此,要使sbt程序集在完整构建中工作,您需要在
project/
下创建一个
.sbt
文件(通常是
project/build.sbt
project/plugins.sbt
),并将构建的解析程序和依赖项放在那里:

resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)

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

addSbtPlugin
的参数格式是什么?对于
sbt assembly
addSbtPlugin(“com.eed3si9n”%”sbt assembly“%”“0.8.3”)
,我该怎么办呢?因此build.scala中处理设置的部分应该如下所示:Seq[Setting[]](解析器+=…,解析器+=…,addSbtPlugin(…)`,我突然想到你可能把它放错了地方。如果这是project/Build.scala,那么将其放在那里将毫无用处(它将声明您的源代码依赖于sbt程序集,而不是项目)。为了让项目使用它,将它的设置放在project/build.sbt或project/project/build.scala中(最好是前者,因为几乎没有理由对项目的元构建使用完整构建)。嗯,我是否在整个
设置
任务中执行
Seq[Setting[\u]]
,或者仅仅是
sbt组件的零件
插件?我刚收到你的新消息。。让我再试一次。那么我是否应该在与我的
build.scala
文件相同的文件夹中创建一个
build.sbt
,添加这两行,然后进行
sbt编译
?“GitHub自述中指定的信息”-请链接?