运行 来自 gradle 的 micronaut 如何使用本地属性

How do you run micronaut from gradle with local properties

我想从 Gradle 命令行使用 "local" 环境变量 运行 Micronaut 服务器。 常规命令

.\gradlew.bat run

将使用 application.yml 文件中定义的默认变量。 我想用本地环境的值覆盖其中一些,因此需要指定系统 属性 micronaut.environments=local 以使用来自 [=23= 的覆盖值]应用-local.yml文件.

.\gradlew.bat run -Dmicronaut.environments=local

上面的命令将不起作用,因为 Gradle 系统 属性 和其余的“.environments=local”只需要 -Dmicronaut将被视为另一个任务名称:

Task '.environments=local' not found in root project 'abc'

将这样的系统 属性 传递给 java 进程的正确方法是什么?

下面的命令适用于 unix,可能它也适用于 windows:

MICRONAUT_ENVIRONMENTS=local gradle run

或使用gradle包装器

MICRONAUT_ENVIRONMENTS=local .\gradlew.bat run

P.S。此外,您还可以为 Spring Boot

找到相同的方法

我的方法是添加一个gradle任务。

task runLocal(type: JavaExec) {
   classpath = sourceSets.main.runtimeClasspath
   main = "dontdrive.Application"
   jvmArgs '-Dmicronaut.environments=local'
}

然后开始:

./gradlew runLocal