Micronaut + Maven - 环境变量

问题描述

我正在从事 Micronaut + Maven 项目。 我需要参数化我的 application.yml 的一些值,例如密码和连接字符串,以避免提交它们。

我知道可以通过这种方式参数化值:

secret-value: '${SECRET_VALUE}'

但除了在 .bashrc 或 .profile 或 .envoirment 脚本文件中设置 bash 值之外,我找不到任何其他方法来设置 SECRET_VALUE

我想以某种方式使用 .env 文件,以便在 git repo 中提交 .env.example 文件

有什么想法吗?

解决方法

根据 maven-resource-plugin 文档: https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

您可以在 pom 文件的 public class A //base class { protected virtual int no => 1; public void show() { Console.WriteLine(no); } } public class B : A //sub class { protected override int no => 100; } 标记中添加过滤器文件。

请参阅上述文档中的 filters

,

我可能已经失去了问题的重点。 解决方案只是创建一个具有所需值的 .env 文件,然后使用诸如

之类的东西运行应用程序

dotenv run ./mvnw mn:run

关于@yunandtidus 解决方案: 这仅适用于“固定”变量,例如应用程序名称,因为 pom 值在环境之间共享(假设我们有一个 application-dev.yml 和一个 application-prod.yml)。 请记住,与 .env 不同,pom.xml 必须 提交,就像您拥有的任何 application.yml 一样。