Spring Boot Hikari找不到DriverClassName

Gus*_*rya 6 java spring spring-boot

我有一个spring boot项目,当我通过eclipse执行时它运行得很好 Project > Run as > spring boot app

但是当我构建项目并java -jar myproject.jar使用mvn spring-boot:run它执行它或使用它运行它时抛出此错误

Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:

Property: driverclassname
Value: com.microsoft.sqlserver.jdbc.SQLServerDriver
Origin: "driverClassName" from property source "source"
Reason: Failed to load driver class com.microsoft.sqlserver.jdbc
.SQLServerDriver in either of HikariConfig class loader or Thread context classloader

Action:

Update your application's configuration
Run Code Online (Sandbox Code Playgroud)

我的sql server连接器依赖

<dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>6.4.0.jre8</version>
        <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在这里我的application.properties

spring.datasource.url=jdbc:sqlserver://mydb;databaseName=HTSdb
spring.datasource.username=xxx
spring.datasource.password=xxx
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
Run Code Online (Sandbox Code Playgroud)

它看起来我的应用程序找不到sqlserver驱动程序,但它已经在项目类路径,任何建议?提前致谢

小智 11

我认为问题在于依赖范围被设置为测试.

范围测试表明在应用程序的标准运行时不需要依赖性,并且仅应用于测试运行的目的!

通常,数据库连接器依赖项是使用运行时

 <dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.4.0.jre8</version>
    <scope>runtime</scope>
 </dependency>
Run Code Online (Sandbox Code Playgroud)