Удалить другие профили из файла конфигурации spring

#java #spring #configuration #spring-profiles

#java #spring #конфигурация #spring-профили

Вопрос:

У меня есть приложение.файл конфигурации yaml с несколькими профилями:

 server:
  address: 0.0.0.0
  port: 9090
db:
  url: 'jdbc:postgresql://localhost:5432/the_db'
  driver: 'org.postgresql.Driver'
  username: 'postgres'
  password: ''
---
spring:
  profiles: devArtem
db:
  url: 'jdbc:postgresql://localhost:5432/my_db'
---
spring:
  profiles: prod_1
db:
  password: 'first_pass'
---
spring:
  profiles: prod_2
db:
  password: 'second_pass'
  

И я хочу удалить другие профили перед сборкой файла jar. Например, я не хочу предоставлять доступ для пароля prod_1 к платформе prod_2.

Для prod_1 это должно быть что-то вроде этого:

 server:
  address: 0.0.0.0
  port: 9090
db:
  url: 'jdbc:postgresql://localhost:5432/the_db'
  driver: 'org.postgresql.Driver'
  username: 'postgres'
  password: 'first_pass'
  

или это:

 server:
  address: 0.0.0.0
  port: 9090
db:
  url: 'jdbc:postgresql://localhost:5432/the_db'
  driver: 'org.postgresql.Driver'
  username: 'postgres'
  password: ''
---
spring:
  profiles: prod_1
db:
  password: 'first_pass'
  

Ответ №1:

Вы можете использовать несколько application-{profile}.yml и предоставить каждой команде нужный файл.

например :

приложение-devArtem.yml —> в команду devArtem
application-prod_1.yml —> в команду prod_1
application-prod_2.yml —> в команду prod_2