在 "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
的依赖项在 运行 时不可用。
它们只能用于构建期间 运行 的测试。
我已经编写了一个 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
的依赖项在 运行 时不可用。
它们只能用于构建期间 运行 的测试。