com.microsoft.sqlserver:sqljdbc4:jar:4.0 was not found产生原因及解决步 ...

打印 上一主题 下一主题

主题 654|帖子 654|积分 1962

问题

sqlserver 包找不到

springboot项目,maven中 sqlserver依赖找不到
  1. Could not resolve dependencies for project *****:jar:1.0.2: com.microsoft.sqlserver:sqljdbc4:jar:4.0 was not found in https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
复制代码
报错原因分析

该错误的根本原因是 Maven 无法在默认的中央堆栈(Maven Central)中找到 com.microsoft.sqlserver:sqljdbc4:jar:4.0 这个依赖。由于在前一次构建实验时,依赖解析失败,因此 Maven 将这个结果缓存起来,导致后续构建不会再重新实验解析这个依赖,直到本地缓存过期或手动强制更新。
重要原因


  • 依赖不在 Maven 中央堆栈:Microsoft 的 sqljdbc4 驱动程序并没有托管在 Maven 的中央堆栈中,Maven 默认不会从其他堆栈(如 Microsoft 的私有堆栈)获取该依赖。
  • 本地缓存问题:Maven 缓存了前一次解析失败的结果,并不会在下一次构建时重新实验解析,除非手动更新缓存。
  • 堆栈设置不完整:pom.xml 文件中缺少对 Microsoft 的私有 Maven 堆栈的设置,导致无法正确下载依赖。
解决方案

步骤 1:查抄 pom.xml 中的依赖声明

起首,确认你在 pom.xml 中正确添加了 sqljdbc4 依赖。正确的依赖声明应如下所示:
  1. <dependency>
  2.     <groupId>com.microsoft.sqlserver</groupId>
  3.     <artifactId>sqljdbc4</artifactId>
  4.     <version>4.0</version>
  5. </dependency>
复制代码
步骤 2:设置 Microsoft 的 Maven 堆栈

因为 sqljdbc4 并未托管在 Maven 中央堆栈,所以你需要手动在 pom.xml 中添加 Microsoft 的私有堆栈地址。你可以在 repositories 节点下添加以下设置:
  1. <repositories>
  2.     <repository>
  3.         <id>microsoft</id>
  4.         <url>https://maven.microsoft.com/maven2/</url>
  5.     </repository>
  6. </repositories>
复制代码
步骤 3:强制更新 Maven 依赖

由于前一次构建实验的失败结果被缓存,你需要强制更新 Maven 依赖。可以使用 -U 选项来强制更新 Maven 的依赖:
  1. mvn clean install -U
复制代码
-U 参数会强制 Maven 忽略本地缓存,并从远程堆栈重新下载依赖。
步骤 4:清理本地堆栈缓存

如果强制更新后依然无法解决问题,可能是本地堆栈中的缓存依赖引起的。可以通过以下命令清理本地堆栈中的缓存依赖:
  1. mvn dependency:purge-local-repository
复制代码
这将扫除全部本地缓存的依赖项,并重新下载。
步骤 5:手动下载并安装 sqljdbc4.jar

如果上述步骤未能解决问题,你可以手动下载 sqljdbc4.jar 并将其安装到本地 Maven 堆栈中:

  • 前往 Microsoft 下载中心 下载 sqljdbc4.jar 文件。
  • 使用以下命令将 sqljdbc4.jar 手动安装到本地 Maven 堆栈:
  1. mvn install:install-file \
  2.     -Dfile=/path/to/sqljdbc4.jar \
  3.     -DgroupId=com.microsoft.sqlserver \
  4.     -DartifactId=sqljdbc4 \
  5.     -Dversion=4.0 \
  6.     -Dpackaging=jar
复制代码
将 /path/to/sqljdbc4.jar 替换为你本地实际的 sqljdbc4.jar 文件路径。
步骤 6:修改 Maven 的 updatePolicy(可选)

如果你的网络环境较慢或某些署理问题导致更新失败,你可以实验通过修改 Maven 的 updatePolicy 强制每次构建都查抄远程堆栈中的更新。在你的 settings.xml 中设置以下内容:
  1. <repositories>
  2.     <repository>
  3.         <id>central</id>
  4.         <url>https://repo.maven.apache.org/maven2</url>
  5.         <snapshots>
  6.             <enabled>false</enabled>
  7.         </snapshots>
  8.         <releases>
  9.             <updatePolicy>always</updatePolicy>
  10.         </releases>
  11.     </repository>
  12. </repositories>
复制代码
如许做会强制 Maven 在每次构建时查抄依赖的更新状态。
总结


  • 确认 pom.xml 中的依赖设置是否正确。
  • 添加 Microsoft Maven 堆栈到 pom.xml 中。
  • 强制更新依赖并清理本地缓存。
  • 如有需要,手动下载并安装 sqljdbc4.jar。
  • 根据网络环境,调解 updatePolicy 以强制更新依赖。
   希望对你有所帮助,若有问题欢迎指正~
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

千千梦丶琪

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表