
4.8 使用自定义profile进行配置
问题
如何为创建的自定义profile设置不同的配置值?
解决方案
到目前为止,你已经看到了Quarkus内置的profile,我们可以为同一个属性设置不同的配置值,并使它们适应不同的环境。使用Quarkus,你也可以设置自己的profile。
你唯一需要做的就是通过quarkus.profile系统属性或QUARKUS_PROFILE环境变量来指定你想要启用的profile。如果两者都设置了,则系统属性优先于环境变量。
之后需要创建带有profile名称的属性,并将当前的profile设置为该名称。让我们创建一个新的staging profile,它覆盖Quarkus的监听端口。
打开src/main/resources/application.properties文件,并设置当staging profile启用时,Quarkus的启动端口为8182:
然后启动应用程序并启用staging profile:
上面的实例使用了系统属性的方法启用profile,不过你也可以使用QUARKUS_PROFILE环境变量来设置它。
讨论
如果你想在测试环境中设置要使用的profile,只需要在构建脚本中把quarkus.test.profile系统属性设置为给定的profile。例如,在Maven中:
或者,在Gradle中:
另外,你也可以调整默认的生产profile。Quarkus内置的profile是prod,所以在没有指定profile的情况下运行应用程序时,prod就是默认的profile。但是你可以在构建时改变默认的profile,这样在没有指定任何profile的情况下,你设置的profile就是应用程序运行时的默认profile。
你需要做的就是使用quarkus.profile系统属性构建应用程序,并将你想要的profile值设置为默认值:
❶该命令设置默认使用prod-kubernetes profile