SORM:如何在 Scala 2.11.6 中使用 Sorm
Posted
技术标签:
【中文标题】SORM:如何在 Scala 2.11.6 中使用 Sorm【英文标题】:SORM: How can I use Sorm in Scala 2.11.6 【发布时间】:2015-08-03 11:55:44 【问题描述】:如何在 Scala 2.11.6 中使用 Sorm, 在编译时出现以下错误
[error] Modules were resolved with conflicting cross-version suffixes in ...
[error] org.scala-lang.modules:scala-xml _2.11, _2.12.0-M1
[error] org.scala-lang.modules:scala-parser-combinators _2.11, _2.12.0-M1
在我的 build.sbt 中我正在使用...
name := "api-psi"
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
"com.h2database" % "h2" % "1.4.177",
"org.sorm-framework" % "sorm" % "0.3.18",
"org.webjars" % "bootstrap" % "3.3.5",
specs2 % Test
)
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
routesGenerator := InjectedRoutesGenerator
我正在尝试这个例子:https://www.youtube.com/watch?v=eNCerkVyQdcI,但他从来没有导入过 sorm...
各位,我设法解决了……
要解决不一致的问题,您应该清除 ivy 缓存:
~/.ivy2/cache
但是您还想修复 scala-compiler 使用的版本,并且希望它与您配置的 scalaVersion 匹配:
dependencyOverrides += "org.scala-lang" % "scala-compiler" % scalaVersion.value
现在在我的 SBT 上
name := """api-my-psi"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
jdbc,
cache,
ws,
specs2 % Test,
"org.sorm-framework" % "sorm" % "0.3.18",
"org.webjars" % "webjars-play_2.11" % "2.4.0-1",
"org.webjars" % "bootstrap" % "3.3.5"
)
dependencyOverrides += "org.scala-lang" % "scala-compiler" % scalaVersion.value
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
routesGenerator := InjectedRoutesGenerator
【问题讨论】:
我编辑了我的答案,这应该可以解决问题 我有同样的问题,清理缓存不起作用。目前我正在使用临时解决方案,只需在我的 build.sbt 文件中添加“conflictWarning := ConflictWarning.disable”这一行。它有效。 您的解决方案有效! 有谁知道这个错误是否仍然存在或者是否已经修复? 【参考方案1】:我认为问题出在线路
"org.scala-lang" % "scala-library" % "2.11.6"
删除它,因为 scala 版本应该像这样在你的 sbt 中:
name := "your name app"
version := "your version"
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
"org.sorm-framework" % "sorm" % "0.3.18"
)
我用激活器创建了一个新的播放应用程序,因为它在播放框架中显示这是 build.sbt 添加 sorm: 的依赖项,还请删除 .ivy/cache 中的文件可能是某种在线离线依赖项,
我还认为问题出在 scala 2.11 特有的 webjars 依赖项上,我使用 java 8 进行了此编译,但这在这种情况下无关紧要,重要的是您的依赖项的 scala 版本试试这个:
name := """Test***"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
jdbc,
cache,
ws,
specs2 % Test,
"org.sorm-framework" % "sorm" % "0.3.18",
"org.webjars" % "webjars-play_2.11" % "2.4.0-1",
"org.webjars" % "bootstrap" % "3.3.5"
)
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator
【讨论】:
是的 anquegi,我想构建一个游戏框架应用程序并想在里面使用 sorm-framework? 我用激活器创建了一个新的 scala 项目,并删除了 .ivy/cache 中的文件,但是......同样的错误 我设法解决了...要解决不一致的问题,您应该清除常春藤缓存:~/.ivy2/cache
但是您还想修复 scala-compiler 使用的版本,并且希望它匹配您配置的 scalaVersion:dependencyOverrides += "org.scala-lang" % "scala-compiler" % scalaVersion.value
非常感谢以上是关于SORM:如何在 Scala 2.11.6 中使用 Sorm的主要内容,如果未能解决你的问题,请参考以下文章