Gradle 自定义任务中的 systemProperty 未设置 Spring 配置文件
Gradle systemProperty in custom task not setting Spring Profile
如果有一个名为“unit”的 spring 配置文件正在工作,我正在尝试有选择地停用测试:
@DisabledIfEnvironmentVariable(named = "SPRING_PROFILES_ACTIVE", matches = "unit")
如果我 运行 SPRING_PROFILES_ACTIVE=unit ./gradlew clean test
这很好用。我遇到的问题是我不想把所有这些都写出来,而是我想要一个自定义 gradle 任务,也称为“单元”。目前看起来像这样:
task unit(type: Test) {
useJUnitPlatform()
systemProperty "SPRING_PROFILES_ACTIVE", "unit"
}
这 运行 是所有测试,即使它们应该被禁用。我尝试了 useJUnitPlatform { sysProp... }
,我尝试添加 options { sysProp... }
,我尝试使用 doFirst
,我尝试在 build.gradle 和注释,我试过 systemProperties "SPRING_PROFILES_ACTIVE": "unit"
但那不起作用。
我发现了很多 Whosebug 问题,其中人们只是将 systemProperties 放入默认测试任务,但我找不到任何关于自定义任务的内容。
我需要调用什么获取任务才能通过spring配置文件系统属性?
@DisabledIfEnvironmentVariable
注解需要设置环境变量。尝试在您的任务中设置环境变量而不是系统 属性:
task unit(type: Test) {
useJUnitPlatform()
environment "SPRING_PROFILES_ACTIVE", "unit"
}
如果有一个名为“unit”的 spring 配置文件正在工作,我正在尝试有选择地停用测试:
@DisabledIfEnvironmentVariable(named = "SPRING_PROFILES_ACTIVE", matches = "unit")
如果我 运行 SPRING_PROFILES_ACTIVE=unit ./gradlew clean test
这很好用。我遇到的问题是我不想把所有这些都写出来,而是我想要一个自定义 gradle 任务,也称为“单元”。目前看起来像这样:
task unit(type: Test) {
useJUnitPlatform()
systemProperty "SPRING_PROFILES_ACTIVE", "unit"
}
这 运行 是所有测试,即使它们应该被禁用。我尝试了 useJUnitPlatform { sysProp... }
,我尝试添加 options { sysProp... }
,我尝试使用 doFirst
,我尝试在 build.gradle 和注释,我试过 systemProperties "SPRING_PROFILES_ACTIVE": "unit"
但那不起作用。
我发现了很多 Whosebug 问题,其中人们只是将 systemProperties 放入默认测试任务,但我找不到任何关于自定义任务的内容。
我需要调用什么获取任务才能通过spring配置文件系统属性?
@DisabledIfEnvironmentVariable
注解需要设置环境变量。尝试在您的任务中设置环境变量而不是系统 属性:
task unit(type: Test) {
useJUnitPlatform()
environment "SPRING_PROFILES_ACTIVE", "unit"
}