您如何使用本地属性从 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?