scala play sbt 配置简单教程

Posted

技术标签:

【中文标题】scala play sbt 配置简单教程【英文标题】:scala play sbt configuration for simple tutorial 【发布时间】:2016-06-17 19:44:17 【问题描述】:

我正在尝试构建我的第一个游戏应用。我正在关注(播放教程中的视频https://www.playframework.com/),但我遇到了 sbt 文件的问题。

sorm 生成 SBT 版本冲突。

name := """gig"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.7"

libraryDependencies ++= Seq(
  jdbc,
  cache,
  ws,
  "org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test
)

//libraryDependencies += "org.sorm-framework" % "sorm" % "0.3.19"

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"

如果我添加以下内容,我还会收到未解决的存储库错误: libraryDependencies += "com.h2database" % "h2" % "1.3.148"

我该如何解决这两个问题?

编辑:

这是错误:

Error:Error while importing SBT project:<br/>...<br/><pre>[info] Resolving com.typesafe.play#play-doc_2.11;1.2.2 ...
[info] Resolving org.pegdown#pegdown;1.4.0 ...
[info] Resolving org.parboiled#parboiled-java;1.1.5 ...
[info] Resolving org.parboiled#parboiled-core;1.1.5 ...
[info] Resolving org.ow2.asm#asm;4.1 ...
[info] Resolving org.ow2.asm#asm-tree;4.1 ...
[info] Resolving org.ow2.asm#asm-analysis;4.1 ...
[info] Resolving org.ow2.asm#asm-util;4.1 ...
[info] Resolving org.scala-lang#scala-compiler;2.11.7 ...
[info] Resolving org.scala-lang.modules#scala-xml_2.11;1.0.4 ...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[error] Modules were resolved with conflicting cross-version suffixes in file:/Users/donbeo/Documents/scala_code/gig/root:
[error]    org.scala-lang.modules:scala-xml _2.11, _2.12.0-M4
[error]    org.scala-lang.modules:scala-parser-combinators _2.11, _2.12.0-M4
[trace] Stack trace suppressed: run 'last *:update' for the full output.
[trace] Stack trace suppressed: run 'last *:ssExtractDependencies' for the full output.
[error] (*:update) Conflicting cross-version suffixes in: org.scala-lang.modules:scala-xml, org.scala-lang.modules:scala-parser-combinators
[error] (*:ssExtractDependencies) Conflicting cross-version suffixes in: org.scala-lang.modules:scala-xml, org.scala-lang.modules:scala-parser-combinators
[error] Total time: 26 s, completed Jun 17, 2016 10:34:45 PM</pre><br/>See complete log in <a href="/Users/donbeo/Library/Logs/IntelliJIdea2016.1/sbt.last.log">/Users/donbeo/Library/Logs/IntelliJIdea2016.1/sbt.last.log</a>

这是播放版addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.4")

【问题讨论】:

你能发布你得到的错误吗?你用的是什么播放版本? @OniltonMaciel 我添加了一些信息 【参考方案1】:

似乎名为 embrace 的 sorm 依赖项有点搞砸了。

由于配置错误,它总是要求提供最新版本的 scala,并且自从 scala 2.12“测试版”发布以来,他要求提供这些。

这里描述了相同的问题:

Why do I get conflicting cross-version in sbt on one environment but not another?

要解决您的问题,您需要强制使用 scala 版本:

dependencyOverrides += "org.scala-lang" % "scala-compiler" % scalaVersion.value

(可以放在 build.sbt 文件的末尾)

然后我们需要为 sorm 清除 ivy2 缓存:

rm -r ~/.ivy2/cache/org.sorm-framework/sorm/

现在运行

sbt update

我的建议是让你以冷静或拥抱的方式提出一个关于此的问题。

【讨论】:

我会将这个问题链接到 sorm。 sorm 现在正在工作。 h2 呢? h2 从来没有这个问题,它现在应该可以工作了。尝试使用它。 我认为它正在工作。 H2不再抱怨了。如果我添加问题,我将重新打开问题。非常感谢。

以上是关于scala play sbt 配置简单教程的主要内容,如果未能解决你的问题,请参考以下文章

超时解决 sbt-plugin

升级 Play/Scala/SBT/jOOQ/HSQLDB 应用程序时出错

如何设置 sbt/scala/play 多模块项目,该项目将与 Intellij scala 插件一起正常工作

如何将 Play 2.2 Scala 应用程序创建为 SBT 子项目

Play 2.0 / SBT:从 Build.scala 中的某些/所有模块中排除某些传递依赖项

如何使用 SBT 原生打包器部署 Scala Play 框架 API