【问题标题】:How to (implicitly) pass environment variables to Maven build in gitlab-ci.yml for a Spring Boot application?如何(隐式)将环境变量传递给 gitlab-ci.yml 中的 Maven 构建以用于 Spring Boot 应用程序?
【发布时间】:2023-02-24 16:28:27
【问题描述】:

在 gitlab-ci.yml 中,我正在使用 Maven 构建一个 Spring Boot 应用程序。要替换 application.properties 中的占位符@MY_PROP@(使用 Maven 资源插件),MY_PROP 作为 -D 参数传递给 mvn 命令。 由于我的构建中有很多参数,有没有办法将环境变量传递给 Maven 而无需通过 -D 显式传递每个单独的 env 参数?

application.properties 
    my.prop=@MY_PROP@

gitlab env variable 
    MY_PROP=4711

gitlab-ci.yml
    Build:
        image: maven:3-jdk-11
        stage: build
        script:
            - mvn clean package deploy -s ci_settings.xml --batch-mode -DMY_PROP=$MY_PROP
        

【问题讨论】:

    标签: spring-boot maven gitlab-ci


    【解决方案1】:

    来自 Maven 参考:https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html

    你可以做:

    env.*

    PATHM2_HOME 等环境变量可以使用env.* 前缀引用。

    因此,在您的 pom.xml 中,您可以将它们引用为:

    ${env.MY_PROP}
    

    【讨论】:

      猜你喜欢
      • 2020-12-30
      • 2020-03-12
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 2018-03-24
      • 2018-10-06
      • 2016-07-31
      • 1970-01-01
      相关资源
      最近更新 更多