我的Maven项目中有以下依赖项
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.2.2.jre8</version>
<!-- Exclude unused Azure dependencies -->
<exclusions>
<exclusion>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-keyvault</artifactId>
</exclusion>
<exclusion>
<groupId>com.microsoft.azure</groupId>
<artifactId>adal4j</artifactId>
</exclusion>
</exclusions>
</dependency>我在Maven here https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc中使用了最新的非预览版mssql-jdbc。
但是,当我运行mvn clean package时,我得到的war文件在WEB-INF/lib中有mssql-jdbc-6.1.0.jre7.jar,而不是预期的mssql-jdbc-6.2.2.jre8.jar。我尝试过清除本地的.m2存储库并重新打包,但没有任何帮助。值得注意的是,6.1.0.jre7实际上是最旧的版本,所以我猜测,由于某种原因,它找不到最新的版本,并且正在恢复到最旧的版本?我被卡住了。
发布于 2019-01-09 11:33:10
我遇到了同样的问题,我使用的是Spring Boot 1.5.x。
根本原因是: Spring Boot(1.5.x)指定版本为"6.1.0.jre7“。
解决方案是:在包含Spring boot Application的主模块中指定您的版本。
我的依赖项的前一部分:
子模块1:
<groupId>com.my.company</groupId>
<artifactId>sub-module1</artifactId>
<version>1.0</version>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.1.3.jre8-preview</version>
</dependency>Main模块,其中包含Spring boot Application:
<dependency>
<groupId>com.my.company</groupId>
<artifactId>sub-module1</artifactId>
<version>1.0</version>
</dependency>我发现主模块boot.jar包括"mssql-jdbc-6.1.0.jre7.jar“。
最后我发现版本是在"spring-boot-dependencies“中指定的,它是"spring-boot- parent”的父类。
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.16.RELEASE</version>
<mssql-jdbc.version>6.1.0.jre7</mssql-jdbc.version>解决方案:在主模块中指定版本:
<dependency>
<groupId>com.my.company</groupId>
<artifactId>sub-module1</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.1.3.jre8-preview</version>
</dependency>按mvn密度检查结果:树,没问题
https://stackoverflow.com/questions/48893855
复制相似问题