在 "test scope" 中启动 Spring 基于 maven 的启动应用程序

Starting Spring Boot Application based on maven in "test scope"

我已经编写了一个 Spring 引导应用程序,它应该在开发期间使用 H2,并在集成测试和生产中使用 mariadb。为了开发,我在 WSL2 中使用 Visual Studio 代码和 Java 扩展。

在 pom.xml 中,我将 H2 存储库定义为依赖项:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.200</version>
    <scope>test</scope>
</dependency>

在 VSCode 中,我创建了 3 个启动配置“调试”、“调试(测试)”和“调试(生产)”。在 launch.json 文件中,我为不同的数据库配置定义了 3 个不同的 spring 配置文件。这是“测试”配置的示例:

{
    "type": "java",
    "name": "Debug (test)",
    "request": "launch",
    "mainClass": "de.frickeldave.fleckerlteppich.telemetry.TelemetryApplication",
    "preLaunchTask": "startmariadb",
    "postDebugTask": "stopmariadb",
    "args": "--spring.profiles.active=test"
} 

问题: 当我在 VSCode 中开始正常的“调试”配置时,我想使用 H2 数据库。但是由于定义 <scope>test</test> 没有加载依赖项,应用程序连接失败。当我删除“测试范围”声明(这不是目标)时,它工作得很好。 我该怎么做才能在测试范围内启动应用程序,以便在使用 VSCode 进行调试时让 H2 可用?我可以添加启动参数吗?

提前致谢

问候戴夫

范围 test 的依赖项在 运行 时不可用。

它们只能用于构建期间 运行 的测试。