Jenkins选择Spring Boot配置文件的任何方式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins选择Spring Boot配置文件的任何方式?相关的知识,希望对你有一定的参考价值。

我的小组正在使用Jenkins构建和部署Spring Boot应用程序到AWS(Elastic Beanstalk)。

对于开发,我通过在application.properties中设置spring.profiles.active属性来为我所在的环境(DEV,QA)选择所需的配置文件。

但是开发人员希望在外部设置该属性。由于应用程序正在部署到SpotInst托管的EC2,因此我无法控制环境。

我一直在做很多搜索,但还没有遇到任何适合这种情况的事情。

我正在使用Gradle进行构建。构建生成WAR文件并部署到Tomcat。

无论如何,通过某种参数替换来实现这一目标?

谢谢。

答案

我们的devOps人员发现我们可以通过AWS Beanstalk设置环境属性。通过转到beanstalk实例上的Configuration并单击Software下的Modify按钮,向下滚动,有一个环境变量部分。他把spring.profiles.active = qa放进去处理它。

由于每个单独的环境都有一个beanstalk,因此只需为每个环境设置一次。

另一答案

我不确定这是否适合您的devOps过程,但有一个非常简单和干净的方法来实现这一点。

配置您的application.yaml文件,如下所示:

spring:
  profiles: 
    active: ${SPRING_PROFILE:"dev"}

在启动应用程序时,将此参数SPRING_PROFILE作为命令行参数传递。请注意,dev是默认值,如果程序找不到任何匹配的命令行参数或环境变量,将使用该值。

您可以将默认值设置为要用于devOps的默认值,而对于您可以控制的所有其他目的,您可以将其作为参数传递。

以上是关于Jenkins选择Spring Boot配置文件的任何方式?的主要内容,如果未能解决你的问题,请参考以下文章

spring boot(十六)使用Jenkins部署spring boot

Spring Boot(十六):使用Jenkins部署Spring Boot

springboot(十六):使用Jenkins部署Spring Boot

Docker 学习 | 第八篇:Docker + Jenkins单机部署Spring Boot项目

Spring Boot 库项目未从 /conf 文件夹中选择外部文件配置

使用Jenkins + Gitlab自动构建Spring Boot项目,并部署到远程服务器上