Java Micronaut&x2B;Maven-环境变量
我正在从事Micronaut+Maven项目。 我需要参数化application.yml的一些值,例如密码和连接字符串,以避免提交它们 我知道可以通过以下方式对值进行参数化: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
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
中的
是否在运行时读取?