您如何使用本地属性从 gradle 运行 micronaut

Posted

技术标签:

【中文标题】您如何使用本地属性从 gradle 运行 micronaut【英文标题】:How do you run micronaut from gradle with local properties 【发布时间】:2019-11-12 22:51:27 【问题描述】:

我想使用“本地”环境变量从 Gradle 命令行运行 Micronaut 服务器。 常规命令

.\gradlew.bat run

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

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

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

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

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

【问题讨论】:

【参考方案1】:

以下命令适用于 unix,或许它也适用于 windows

MICRONAUT_ENVIRONMENTS=local gradle run

或者使用gradle wrapper

MICRONAUT_ENVIRONMENTS=local .\gradlew.bat run

附:此外,您可以为 Spring Boot 找到相同的方法

【讨论】:

谢谢,就是这样,完全忽略了这种方法,以为我必须用gradle命令本身定义变量。 这也适用于 IntelliJ,方法是在运行配置中指定“环境变量”,如“MICRONAUT_ENVIRONMENTS=local”【参考方案2】:

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

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

然后开始:

./gradlew runLocal

【讨论】:

以上是关于您如何使用本地属性从 gradle 运行 micronaut的主要内容,如果未能解决你的问题,请参考以下文章

如何将本地 Maven m2 作为属性传递给 Gradle?

Gradle中的build.gradle文件

如何使用 Gradle + Spring boot 运行多个配置文件? [复制]

如何禁用 build.gradle 中的任务

如何从命令行(使用 kotlinc)使用 kapt?

如何使用 Gradle 中的本地 JUnit Jar 而不是 Maven Central?