2014-10-16 83 views
1

我想在我的Play 2.3應用程序中使用Slick 2.1和MS SQL Server。我一直試圖讓Slick的代碼生成器在Build.scala中工作。這是因爲MS SQL Server JDBC驅動程序不在Maven上,我只是手動將驅動程序jar文件放在/lib文件夾中。目前,我得到這個錯誤:靜態代碼生成器,具有靜態依賴關係

[error] (run-main-0) java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver 

這是代碼生成器是如何的部分看起來像:

lazy val slickCodeGenTask = (sourceManaged, dependencyClasspath in Compile, runner in Compile, streams) map { (dir, cp, r, s) => 
    val outputDir = (dir/"slick").getPath 
    val url = "jdbc:sqlserver://localhost:1433;databaseName=mydb" 
    val jdbcDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver" 
    val slickDriver = "com.typesafe.slick.driver.ms.SQLServerDriver" 
    val pkg = "db" 
    toError(r.run("scala.slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg, user, pswd), s.log)) 
    val fname = outputDir + "/db/Tables.scala" 
    Seq(file(fname)) 
} 

如何讓MS SQL Server的JDBC驅動程序把玩油滑代碼一起發電機?

回答

0

SBT在播放2.3似乎並沒有自動lib文件夾的內容添加到類路徑中,所以我爲我的IntelliJ IDEA其中除其他外增加了罐子從lib添加到類路徑中運行idea命令後的解決方案絆倒了。

此外,大量挖掘最終解決方案後,這個特定的問題是使用開源的jtds驅動程序的漂亮的代碼生成器和ms jdbc驅動程序的其餘應用程序。這是什麼發電機代碼最終看起來像這樣:

lazy val slickCodeGenTask = (sourceManaged, dependencyClasspath in Compile, runner in Compile, streams) map { (dir, cp, r, s) => 
    val outputDir = "app" 
    val url = "jdbc:jtds:sqlserver://localhost:1433;databaseName=mydb" 
    val jdbcDriver = "net.sourceforge.jtds.jdbc.Driver" 
    val slickDriver = "com.typesafe.slick.driver.ms.SQLServerDriver" 
    val pkg = "db" 
    toError(r.run("scala.slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg, user, pswd), s.log)) 
    val fname = "Tables.scala" 
    Seq(file(fname)) 
} 
相關問題