当前位置: 首页 > 知识库问答 >
问题:

在pom.xml中定义概要文件的问题(Spring Boot)

帅雅逸
2023-03-14

我有一个Spring Boot应用程序,有两个配置文件:'dev'和'prod'。在'dev'配置文件应该使用H2数据库,在'prod'-PostgreSQL。

它们在pom.xml中定义如下:

<profiles>
        <profile>
            <id>prod</id>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                    <scope>provided</scope>
                </dependency>

                <dependency>
                    <groupId>org.postgresql</groupId>
                    <artifactId>postgresql</artifactId>
                    <version>9.4.1211.jre7</version>
                </dependency>

            </dependencies>
        </profile>

        <profile>
            <id>dev</id>
            <dependencies>
                <dependency>
                    <groupId>com.h2database</groupId>
                    <artifactId>h2</artifactId>
                </dependency>
            </dependencies>
        </profile>
</profiles>
spring.profiles.active = prod

另外,对于每个配置文件,我都有两个特定的属性文件:

application-dev.properties:

spring.jpa.show-sql = true

和application-prod.properties(我将应用程序部署到AWS):

spring.datasource.url = jdbc:postgresql://${RDS_HOSTNAME}:${RDS_PORT}/${RDS_DB_NAME}
spring.datasource.username = ${RDS_USERNAME}
spring.datasource.password = ${RDS_PASSWORD}
spring.jpa.hibernate.ddl-auto = update
-Dspring.profiles.active="dev"
***************************
APPLICATION FAILED TO START
***************************

Description:

Cannot determine embedded database driver class for database type NONE

Action:

        If you want an embedded database please put a supported one on the classpath.
    If you have database settings to be loaded from a particular profile you may need
to active it (the profiles "dev" are currently active).

共有1个答案

涂选
2023-03-14

无法确定数据库类型NONE的嵌入式数据库驱动程序类

spring.datasource.url = jdbc:h2:mem:yourDB
spring.datasource.driverClassName = org.h2.Driver

添加到application-dev.properties文件中应该可以解决您的问题。

从Spring Boot文档中,在某些情况下可能需要它:

  mvn spring-boot:run -Pdev -Dspring.profiles.active="dev"

为什么在依赖项中重写Spring提供的postgresql版本?
无论如何,您使用的postgresql驱动程序版本不是org.postgresql.jdbc.driver类,而是org.postgresql.driver
因此,请在prod配置的属性文件中指定:

spring.datasource.driverClassName = org.postgresql.Driver
 类似资料:
  • A)总结问题 在pom Maven中定义编译器版本有三种方法。我没有提到maven.compiler的版本、插件和版本(意味着maven构建成功),然后是如何选择编译器版本的,我没有提到版本 关于我试过的东西,请参阅b节 我定义了无效的Maven.Compiler.Release。然后它也起作用了 4.0.0 io.flowing.retail flow-retail-kafka-shipping

  • 我正在使用maven项目进行UI自动化,我需要在多个环境和多个浏览器中运行一些测试。我已经创建并添加了pom.xml文件,并声明了其中的属性。但是当我通过终端执行它时,我得到了错误。我用的命令- 错误-[信息]扫描项目...[ERROR][ERROR]处理POM时遇到一些问题:[FATAL]不可解析POM d:\work\cucumber_projects\ui-automation-projec

  • 我们的企业团队维护设置。xml文件,该文件定义了开发项目可以与Maven一起使用的各种概要文件,以构建其构件并将其安装到存储库中。我们期望Jenkins中的每个项目都会使用指定的所需概要文件定义一个-P参数。 这是我的问题:我需要使用的配置文件指定了一个通常对我的项目不可见的存储库(分阶段发布存储库),因此如果该配置文件处于活动状态,则无法依赖该存储库中的任何内容。我需要一种方法来激活我项目的文件

  • 我的ISP不允许我的cpanel托管的laravel站点具有自定义根文件夹(laravel结构中的公用文件夹)。 这意味着我不能让服务器将/public\u html/public作为根目录。它必须始终是/public\u html 根据他们的指导,我设置了以下/public\u html/。htaccess规则,使Laravel公用文件夹显示为根文件夹 这或多或少有效,但并不完全有效。问题是,如

  • 有人能告诉我从外部独立的JavaClient访问Websphere Liberty profile 8.5中定义的数据源的过程吗? 谢谢