sbt run не найдет внешние библиотеки - PullRequest
2 голосов
/ 30 октября 2019

У меня есть mssql как внешняя библиотека, определенная следующим образом в моем build.sbt.

libraryDependencies ++= Seq(
  ...
  "com.typesafe.slick" %% "slick" % "3.3.2",
  "com.typesafe.slick" %% "slick-hikaricp" % "3.3.2",
  "com.microsoft.sqlserver" % "mssql-jdbc" % "7.4.1.jre8"
)

Теперь, чтобы запустить мой основной объект, я делаю следующее

  1. sbt
  2. run
  3. выберите основной объект

Теперь, однако, кажется, что драйвер, то есть библиотека не может быть найден.

java.lang.RuntimeException: Failed to get driver instance for jdbc
...
Caused by: java.sql.SQLException: No suitable driver

Полагаю, он просто не включен в путь к классам. Любые предложения о том, как это исправить?

Редактировать: я использую следующий способ для подключения к базе данных.

object DatabaseUtils {
  private val cfg: DatabaseConfig[JdbcProfile] = DatabaseConfig.forConfig("database")
  def db: JdbcProfile#Backend#Database = cfg.db
}

С этой конфигурацией

database = {
 profile = "slick.jdbc.SQLServerProfile$"
 db {
  host = "<IP>"
  port = <port>
  databaseName = "<dbname>"

  url = "jdbc:sqlserver://"${database.db.host}":"${database.db.port}";databaseName="${database.db.databaseName}
  user = "<user>"
  password = "<pass>"
 }
}

1 Ответ

1 голос
/ 30 октября 2019

Я думаю, что вы скучаете по драйверу базы данных. Из документации :

tsql {
  driver = "slick.driver.H2Driver$"
  db {
    connectionPool = disabled
    driver = "org.h2.Driver"
    url = "jdbc:h2:mem:tsql1;INIT=runscript from 'src/main/resources/create-schema.sql'"
  }
}

я не использую Slick , в нашем проекте драйвер для MSSQL - com.microsoft.sqlserver.jdbc.SQLServerDriver

...