我是Lagom和SBT的新手,我正在尝试使用IntelliJ执行我的第一个项目。

我的项目的结构是:

java - 在SBT项目中找不到lagom-javadsl-api-LMLPHP

我的SBT版本是:

sbt.version = 0.13.16


plugins.sbt文件包含:

// The Lagom plugin
addSbtPlugin("com.lightbend.lagom" % "lagom-sbt-plugin" % "1.3.10")
// Needed for importing the project into Eclipse
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")


并且build.sbt文件包含:

name := "testsbt"

version := "1.0-SNAPSHOT"

scalaVersion := "2.12.3"

lazy val `hello-lagom` = (project in file("."))
  .aggregate(`user-api`, `user-impl`)

lazy val `user-api` = (project in file("user-api"))
  .settings(
    libraryDependencies += lagomJavadslApi
  )

lazy val `user-impl` = (project in file("user-impl"))
  .enablePlugins(LagomJava)
  .dependsOn(`user-api`)


问题是,当我尝试构建项目时出现此错误:


  sbt.ResolveException:未解决的依赖项:
  com.lightbend.lagom#lagom-javadsl-api_2.10; 1.3.10:找不到
  
  [错误](user-api / *:update)sbt.ResolveException:未解决的依赖项:
  com.lightbend.lagom#lagom-javadsl-api_2.10; 1.3.10:找不到


我也有一些警告,例如:


  [info]更新完成。
  
  [警告]在库依赖项中发现版本冲突;有些被怀疑是二进制不兼容的:
  
  [警告] * org.jboss.logging:jboss-logging:3.3.0.Final被选中
  3.2.1最后
  
  [警告] +-com.lightbend.lagom:lagom-javadsl-api_2.11:1.3.10
  (取决于3.2.1最终版)
  
  [警告] +-org.hibernate:hibernate-validator:5.2.4.Final
  (取决于3.2.1最终版)
  
  [警告] * io.netty:netty-codec-http:4.0.51.Final被选中
  4.0.41决赛
  
  [警告] +-com.lightbend.lagom:lagom-service-locator_2.11:1.3.10
  (取决于4.0.51.Final)
  
  [警告] +-com.lightbend.lagom:lagom-client_2.11:1.3.10
  (取决于4.0.51.Final)
  
  [警告] +-org.asynchttpclient:async-http-client:2.0.36
  (取决于4.0.51.Final)
  
  [警告] +-com.typesafe.netty:netty-reactive-streams-http:1.0.8
  (取决于4.0.41.Final)


我无法理解为什么sbt无法找到lagom-javadsl-api依赖项。我错过了什么 ?

感谢您的帮助。

最佳答案

您需要设置:

scalaVersion in ThisBuild := "2.11.12"


这样可以确保针对整个构建进行设置,而不仅仅是针对根项目进行设置。如果只是为根项目设置的,则将获得默认的Scala版本,对于sbt 0.13,该版本为2.10。另外,Lagom 1.3并非针对Scala 2.12交叉构建的,因此您必须使用2.11。

10-05 23:11