【问题标题】:Adding properties to Spring Boot application.yml file at the maven build time在 Maven 构建时向 Spring Boot application.yml 文件添加属性
【发布时间】:2019-02-24 23:11:10
【问题描述】:

我有一个用例,我需要在 Maven 构建时为每个 Spring Boot 配置文件将一些属性写入 Spring Boot application.yml 文件。

输入(application.yml):

spring:
  profiles: ED

eureka:
  client:
    enabled: true
    availabilityZones:
      us-west-2: us-west-2a,us-west-2b
    serviceUrl:
      us-west-2a: http://regdiscovery:${eureka.environment}@memeboot-regdiscovery1-ed.aord.expertcity.com:8080/eureka/

---
spring:
  profiles: RC

eureka:
  client:
    enabled: true
    availabilityZones:
      us-west-2: us-west-2a,us-west-2b
    serviceUrl:
      us-west-2a: http://regdiscovery:${eureka.environment}@memeboot-regdiscovery1-rc.aord.expertcity.com:8080/eureka/

预期输出(maven 构建后的 application.yml):

spring:
  profiles: ED

eureka:
  client:
    enabled: true
    availabilityZones:
      us-west-2: us-west-2a,us-west-2b
    serviceUrl:
      defaultZone: dummy-url-1,dummy-url-2
      us-west-2a: http://regdiscovery:${eureka.environment}@memeboot-regdiscovery1-ed.aord.expertcity.com:8080/eureka/

---
spring:
  profiles: RC

eureka:
  client:
    enabled: true
    availabilityZones:
      us-west-2: us-west-2a,us-west-2b
    serviceUrl:
      defaultZone: dummy-url-1,dummy-url-2
      us-west-2a: http://regdiscovery:${eureka.environment}@memeboot-regdiscovery1-rc.aord.expertcity.com:8080/eureka/ 

请注意预期输出中添加的行defaultZone: dummy-url-1,dummy-url-2。是否有任何 maven 插件可用于实现此目的?

【问题讨论】:

  • 您是否考虑过在您的环境(test、prod 等)中定义 PATH 变量,然后将其注入到属性文件中?例如:defaultZone: ${DEFAULT_ZONE}
  • 实际上@Boris 我想用 defaultZone: ${SomeEnv} 之类的占位符添加行本身。

标签: maven spring-boot netflix-eureka spring-cloud-netflix spring-boot-maven-plugin


【解决方案1】:

使用这个answer

您应该安装Maven Resources Plugin 而不是${property.key} 使用@property.key@。像这样:

us-west-2a: @eureka.environment@

【讨论】:

  • 其实 Artiow ,我想自己添加这个特定的行。 defaultZone: dummy-url-1,dummy-url-2 或者更清楚地说,我想添加带有占位符的行,例如 defaultZone: @eureka.environment@
  • 最终,我使用 maven 资源插件来解析占位符,但在此之前我需要添加一行 defaultZone: @eureka.environment@,然后我正在解析占位符。
  • @Piyush Kumar,您可以尝试添加 maven 属性 <eureka.client.serviceUrl.defaultZone>dummy-url-1,dummy-url-2</...> 或使用 JVM 参数 -Deureka.client.serviceUrl.defaultZone=dummy-url-1,dummy-url-2。你可能需要maven-site-plugin
猜你喜欢
  • 2019-11-24
  • 1970-01-01
  • 2018-01-31
  • 2015-05-14
  • 2021-07-17
  • 2015-01-12
  • 2018-01-04
  • 2017-10-11
相关资源
最近更新 更多