Java Micronaut&x2B;Maven-环境变量

Java Micronaut&x2B;Maven-环境变量,java,kotlin,micronaut,dotenv,Java,Kotlin,Micronaut,Dotenv,我正在从事Micronaut+Maven项目。 我需要参数化application.yml的一些值,例如密码和连接字符串,以避免提交它们 我知道可以通过以下方式对值进行参数化: secret-value: '${SECRET_VALUE}' 但是除了在.bashrc或.profile或.envoirment脚本文件中设置bash值外,我找不到任何其他方法来设置SECRET\u值 我希望以某种方式使用.env文件,以便在git repo中提交.env.example文件 有什么想法吗?根据mav

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

我知道可以通过以下方式对值进行参数化:

secret-value: '${SECRET_VALUE}'
但是除了在.bashrc或.profile或.envoirment脚本文件中设置bash值外,我找不到任何其他方法来设置
SECRET\u值

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


有什么想法吗?

根据maven资源插件文档:

您可以在pom文件的
filters
标记中添加一个过滤器文件


请参见
我们可以通过在上述文档中指定包含:
的筛选文件my-filter-values.properties将“your.name”与POM分开。

我可能已经失去了问题的焦点。 解决方案是简单地创建一个具有所需值的.env文件,然后使用以下内容运行应用程序

dotenv运行。/mvnw mn:run

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

听起来像是要在
.env
文件中定义值,然后在
application.yml
中引用这些值。为什么仅仅将它们放在特定于环境的
yml
文件中(
application qa.yml
application customersite.yml
等)并在激活相应环境的情况下运行应用程序是行不通的?您还说您希望“避免提交它们”,然后说您希望
…以便在git repo中提交.env.example文件。
。是不是您试图避免将这些值存储在Git中?是的,正如我所回答的,我失去了问题的焦点。在.env.example中,您应该只插入非敏感数据,并将其替换为示例数据。因此,当您需要设置新环境时,只需将.env.example复制到一个新的.env中,然后替换虚假和错误的数据,就可以开始了。这是为了避免遗忘。“由于pom值在环境之间共享”-为什么在运行的应用程序中需要pom值?Idk,也许可以获得类似当前版本的内容,这将有助于填充类似于
secret value:'${secret\u value}的内容“
application.yml
中的
是否在运行时读取?