无法解析类或包“h2”

问题描述 投票:0回答:2

我为我的网络应用程序开发后端应用程序。 在我的项目(SpringBoot + Maven)中,我想添加 h2 数据库。 根据网上的教程:

  1. application.properties 文件中添加了以下行:

     server.port = 8088
     spring.h2.console.enabled=true
     spring.h2.console.path=/h2
     spring.datasource.url=jdbc:h2:mem:testdb
     spring.datasource.username=sa
     spring.datasource.password=
     spring.datasource.driverClassName=org.h2.Driver    //h2 seems to be NOT found
     spring.jpa.show-sql=true
    
  2. pom.xml文件中添加了以下依赖项:

     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-jpa</artifactId>
     </dependency>
     <dependency>
         <groupId>com.h2database</groupId>
         <artifactId>h2</artifactId>
     </dependency>
    

问题:

application.properties 中:“无法解析类或包‘h2’”

全面检查:“检查 Spring Boot 应用程序 .properties 配置文件。突出显示未解析和弃用的配置键以及无效值。仅适用于 Spring Boot 1.2 或更高版本。”

当然,我的Spring Boot高于1.2(1.5.8)。 我在网络中发现了类似的问题,但是“重新加载依赖项”不起作用,所以我仍然没有解决方案:)。请帮忙。

java spring maven spring-boot h2
2个回答
1
投票

看起来问题出在您的 pom 文件中的某个位置。请找到我的 pom.xml 文件,该文件是我与您的

application.properties
文件检查过的。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mberazouski.stackoverflow</groupId>
    <artifactId>spring-boot-hibernate</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>spring-boot-hibernate</name>
    <description>Demo project for Spring Boot And Hibernate</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>
</project>

一旦 Spring Boot 启动,请检查 h2-console: http://localhost:8088/h2

希望这会有所帮助。 附:如果您不知道,我建议您使用 http://start.spring.io/ 来生成项目。在那里您可以选择您计划使用的任何组件。有关更多信息,您可以阅读例如here


0
投票

我遇到了同样的错误,我通过定义 h2 依赖项的范围解决了这个问题,如下图所示:

© www.soinside.com 2019 - 2024. All rights reserved.