• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

用sbt和IntelliJ IDEA管理依赖关系

scala 来源:Azoulay Jason 10次浏览

我正在开发一个后端项目,第一次使用IntelliJ IDEA的Scala和Play Framework。用sbt和IntelliJ IDEA管理依赖关系

我已经读了很多文件和主题:

  • SBT Library dependencies doc
  • IntelliJ support post
  • Another post从计算器

我不明白如何导入依赖关系。

当我尝试附加新的依赖项时,IntelliJ强调它并显示“未知问题,未解决或索引”或日志显示并显示“SBT未知导入”。

我添加的每个依赖项都来自Maven存储库。

这里是build.sbt文件:

name := "server" 

version := "1.0" 

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

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

resolvers += "Akka Snapshot Repository" at "http://repo.akka.io/snapshots/" 

resolvers := ("Atlassian Releases" at "https://maven.atlassian.com/public/") +: resolvers.value 

scalaVersion := "2.12.2" 

libraryDependencies ++= Seq(
    jdbc, 
    ehcache, 
    ws, 
    specs2 % Test, 
    guice, 
    "org.mongodb.scala" %% "mongo-scala-driver" % "2.1.0", 
    "com.mohiva" %% "play-silhouette" % "5.0.2", 
    "com.mohiva" %% "play-silhouette-password-bcrypt" % "5.0.2", 
    "com.mohiva" %% "play-silhouette-crypto-jca" % "5.0.2", 
    "com.mohiva" %% "play-silhouette-persistence" % "5.0.2", 
    "com.mohiva" %% "play-silhouette-testkit" % "5.0.2" % "test" 
) 

unmanagedResourceDirectories in Test <+= baseDirectory (_ /"target/web/public/test") 

===========解决方案如下:

这些依赖关系是使用由播放插件定义的简写规定:

jdbc, 
ehcache, 
ws, 
specs2 % Test, 
guice 

因此对他们的工作,一定要在project目录的.sbt文件中包含类似以下的行:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.10") 

这应该解决您的问题。

特别提示:无需以下行,因为每增加分解减慢SBT,你应该将其删除:

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

resolvers += "Akka Snapshot Repository" at "http://repo.akka.io/snapshots/" 

resolvers := ("Atlassian Releases" at "https://maven.atlassian.com/public/") +: resolvers.value 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)