sbtが自動的にlibraryDependenciesをクラスパスに追加しないのはなぜですか?私はjdbc-sqliteをプロジェクトに追加しようとしていますが、ドライバを見つけることはできません。 lib依存関係はsbtによって管理されているので、クラスパスの一部でなければなりません。しかし、私はそうではないと思います。どうすれば追加できますか?sbtが自動的にlibraryDependenciesをクラスパスに追加しないのはなぜですか?
私のボックスにしか存在しないこれらのライブラリへのパス参照を定義するのは悪い習慣のようです。
name := "CacheWarmer"
version := "0.1"
scalaVersion := "2.12.3"
mainClass in Compile := Some("process.Daemon")
libraryDependencies ++= Seq(
"org.xerial" % "sqlite-jdbc" % "3.20.0" % "test"
)
package process
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
コードは
object Daemon {
def main(args: Array[String]): Unit = {
//Gets java.sql.SQLException: No suitable driver found for jdbc:sqlite::memory:
val connection:Connection = DriverManager.getConnection("jdbc:sqlite::memory:")
}
}
もちろんコンパイル/実行時の依存関係は、SBTラン&テストクラスパスで利用できます。 – cchantep
jdbc-sqliteドライバが見つからないと言われている実行時間ではない –