问题描述
我正在从事 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 一样。