ade*_*rtc 13 scala jar sbt typesafe-stack sbt-assembly
到目前为止,我一直在用SBT编译我的Scala项目(通过Typesafe堆栈).我想通过sbt-assembly在几台机器上运行代码.按照指示,我所做的唯一一项更改是在我的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"
Run Code Online (Sandbox Code Playgroud)
sbt compile但是,当我运行时,我收到此错误:
sbt.ResolveException: unresolved dependency: com.eed3si9n#sbt-assembly/scala_2.9.1/sbt_0.11.2;0.8.3: not found.
我究竟做错了什么?
谢谢!
编辑build.sbt在与Build.scala(文件夹是/project/)相同的文件夹中
创建了一个文件,并在其中包含以下两行:
Seq[Setting[_]](resolvers += "artifactory" at "http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases",
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.8.3"))
Run Code Online (Sandbox Code Playgroud)
现在的错误是:
[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
Run Code Online (Sandbox Code Playgroud)
编辑2
嗯,在我成功之后sbt compile,我应该能够进入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]
Run Code Online (Sandbox Code Playgroud)
编辑3 JK得到了它.必须添加build.sbtGitHub自述文件中指定的信息.
RM.*_*RM. 10
这里有两点.一个是SBT插件不仅仅是库依赖 - 特别是,它们使用当前的SBT版本,类似于其他Scala库使用Scala版本.另一种是libraryDependencies在project/Build.scala影响到依赖关系的项目,而不是为构建.
SBT完整版本本身就是一个SBT项目,只位于目录树的一层,因此可以像普通版本一样配置自己的构建.与正常构建不同,在少数情况下需要"完全构建",几乎从来没有理由使用完整构建来构建,因此使用.sbt位于的文件project/几乎总是足够的.
另一个问题是版本控制.SBT有一个实用功能addSbtPlugin,可以为您处理所有事情.它需要一个moduleID并添加所有必需的SBT和Scala版本信息.
因此,要使sbt-assembly在完整版本中工作,您可以.sbt在under project/(通常为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")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17645 次 |
| 最近记录: |