【问题标题】:SBT module not found module not found: com.microsoft.sqlserver#sqljdbc4;4.0未找到 SBT 模块 未找到模块:com.microsoft.sqlserver#sqljdbc4;4.0
【发布时间】:2018-04-15 13:10:11
【问题描述】:

我有一个使用 IntelliJ 开发的 Scala 应用程序。 当我尝试使用 sbt 打包它时,我收到以下错误,它抱怨我在 build.sbt 文件中包含的 sqljdbc4。

> package
[info] Updating {file:/C:/Users/jthomas1/IdeaProjects/AvroToParquet/}avrotoparquet...
[info] Resolving com.microsoft.sqlserver#sqljdbc4;4.0 ...
[warn]  module not found: com.microsoft.sqlserver#sqljdbc4;4.0
[warn] ==== local: tried
[warn]   C:\Users\jthomas1\.ivy2\local\com.microsoft.sqlserver\sqljdbc4\4.0\ivys\ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/com/microsoft/sqlserver/sqljdbc4/4.0/sqljdbc4-4.0.pom
[warn] ==== local-preloaded-ivy: tried
[warn]   C:\Users\jthomas1\.sbt\preloaded\com.microsoft.sqlserver\sqljdbc4\4.0\ivys\ivy.xml
[warn] ==== local-preloaded: tried
[warn]   file:/C:/Users/jthomas1/.sbt/preloaded/com/microsoft/sqlserver/sqljdbc4/4.0/sqljdbc4-4.0.pom
[info] Resolving jline#jline;2.11 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.microsoft.sqlserver#sqljdbc4;4.0: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Unresolved dependencies path:
[warn]          com.microsoft.sqlserver:sqljdbc4:4.0 (C:\Users\jthomas1\IdeaProjects\AvroToParquet\build.sbt#L13-14)
[warn]            +- default:avrotoparquet_2.11:0.1
[trace] Stack trace suppressed: run last *:update for the full output.
[error] (*:update) sbt.ResolveException: unresolved dependency: com.microsoft.sqlserver#sqljdbc4;4.0: not found
[error] Total time: 4 s, completed Nov 2, 2017 5:18:51 PM

从 build.sbt 文件开始

name := "AvroToParquet"

version := "0.1"

scalaVersion := "2.11.1"

libraryDependencies += "com.microsoft.sqlserver" 
% "sqljdbc4" % "4.0" 
% "runtime"


libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "1.6.1",
  "org.apache.spark" %% "spark-sql" % "1.6.1",
  "org.apache.spark" %% "spark-hive" % "1.6.1"
)

感谢您的帮助!

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    你可以添加

    resolvers += "Clojars" at "http://clojars.org/repo/"
    

    到您的build.sbt,它应该可以解决问题。


    请注意,已经有similar questions 并且在人们写的答案中

    不幸的是,Microsoft 并未通过任何 maven 存储库提供此工件。您需要从 Microsoft 网站下载 jar,然后手动将其安装到本地 maven 存储库中。

    因此,如果您不想使用上面的 Clojars 存储库,您可以从 Microsoft 下载此 jar 并将其放在 sbt 项目的 lib/ 文件夹中。

    另请参阅this answer,它指的是 Maven Central 中可用的此驱动程序的另一个工件。

    【讨论】:

    • sbt 文件中的解析器条目解决了编译和打包问题。谢谢!
    【解决方案2】:

    在 maven central here 中列出了 Microsoft Sql Server JDBC。

    该页面上有一个标签列出了这个 jar 的 sbt 信息:

    libraryDependencies += "com.microsoft.sqlserver" % "mssql-jdbc" % "7.4.1.jre12"
    

    【讨论】: