如何在 GitLab-CI AutoDevOps 中使用自定义 settings.xml?
How to use custom settings.xml with GitLab-CI Auto DevOps?
我正在使用 GitLabCI AutoDevOps 编译一个基于 Maven 的项目,基于 DinD (docker-in-docker) 跑步者。
CI 作业开始,并正确检测到 Maven 的构建包(基于 herokuish)。
如何在不切换到自定义 .gitlab-ci.yml 的情况下配置自定义设置文件?
我想继续使用 AutoDevOps。
因为 Maven 需要访问基于 Nexus 的私有存储库,所以配置自定义 settings.xml(并使用您的源代码对其进行版本控制)
很方便
最简单的解决方案是包含自定义 settings.xml。前段时间Auto DevOps使用的相应buildpack中包含了这个特性,你可以在这篇article from Heroku buildpacks.
中看到
所以我在 .gitlab-ci.yml
配置文件中定义了 MAVEN_SETTINGS_PATH 变量:
variables:
- MAVEN_SETTINGS_PATH: ".m2/settings.xml"
然后,将文件 settings.xml
包含在存储库中。
避免包含秘密或其他敏感信息
使用带有凭据的私有 Maven 存储库时
最后,你可以在Gitlab中定义一些要在settings.xml
中使用的变量。使用 Gitlab UI 或 API 添加用户、密码和存储库 url 的变量,作为环境变量从 Gitlab 包含到作业中。然后你可以在 settingx.xml
中使用它,比如 ${env.VARIABLE_NAME}
Gitlab示例-CI配置文件:
include:
- template: Auto-DevOps.gitlab-ci.yml
variables:
MAVEN_SETTINGS_PATH: ".m2/settings.xml"
AUTO_DEVOPS_BUILD_IMAGE_FORWARDED_CI_VARIABLES: NEXUS_REPO_USER,NEXUS_REPO_PASSWORD,NEXUS_REPO_URL
我正在使用 GitLabCI AutoDevOps 编译一个基于 Maven 的项目,基于 DinD (docker-in-docker) 跑步者。
CI 作业开始,并正确检测到 Maven 的构建包(基于 herokuish)。
如何在不切换到自定义 .gitlab-ci.yml 的情况下配置自定义设置文件?
我想继续使用 AutoDevOps。
因为 Maven 需要访问基于 Nexus 的私有存储库,所以配置自定义 settings.xml(并使用您的源代码对其进行版本控制)
很方便最简单的解决方案是包含自定义 settings.xml。前段时间Auto DevOps使用的相应buildpack中包含了这个特性,你可以在这篇article from Heroku buildpacks.
中看到所以我在 .gitlab-ci.yml
配置文件中定义了 MAVEN_SETTINGS_PATH 变量:
variables:
- MAVEN_SETTINGS_PATH: ".m2/settings.xml"
然后,将文件 settings.xml
包含在存储库中。
避免包含秘密或其他敏感信息
使用带有凭据的私有 Maven 存储库时
最后,你可以在Gitlab中定义一些要在settings.xml
中使用的变量。使用 Gitlab UI 或 API 添加用户、密码和存储库 url 的变量,作为环境变量从 Gitlab 包含到作业中。然后你可以在 settingx.xml
中使用它,比如 ${env.VARIABLE_NAME}
Gitlab示例-CI配置文件:
include:
- template: Auto-DevOps.gitlab-ci.yml
variables:
MAVEN_SETTINGS_PATH: ".m2/settings.xml"
AUTO_DEVOPS_BUILD_IMAGE_FORWARDED_CI_VARIABLES: NEXUS_REPO_USER,NEXUS_REPO_PASSWORD,NEXUS_REPO_URL