gav*_*oto 4 maven gitlab buildpack gitlab-ci gitlab-autodevops
我正在使用GitLab\xe2\x80\xafCI Auto\xe2\x80\xafDevOps在 DinD (docker-in-docker) 运行器中编译一个基于 Maven 的项目。
\nCI 作业启动,并且正确检测到 Maven 的构建包(基于 herokuish)。
\n如何配置自定义settings.xml文件而不切换到自定义.gitlab-ci.yml?
我想继续使用 Auto\xe2\x80\xafDevOps。
\ngav*_*oto 10
因为 Maven 需要访问基于 Nexus 的私有存储库,所以可以方便地配置自定义settings.xml(并使用源代码对其进行版本控制)
最简单的解决方案是包含自定义settings.xml. 此功能之前已包含在 Auto DevOps 使用的相应构建包中,正如您可以在Heroku buildpacks 中有关“使用自定义 Maven 设置文件”的文章中看到的那样。
所以我在.gitlab-ci.yml配置文件中定义了 MAVEN_SETTINGS_PATH 变量:
variables:
- MAVEN_SETTINGS_PATH: ".m2/settings.xml"
Run Code Online (Sandbox Code Playgroud)
然后,将该文件包含settings.xml在存储库中。
避免包含秘密或其他敏感信息
最后,您可以在 Gitlab 中定义一些要在settings.xml. 使用 Gitlab UI 或 API 添加用户、密码和存储库 URL 的变量,以将其作为环境变量从 Gitlab 包含到作业中。settings.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
Run Code Online (Sandbox Code Playgroud)
最后的建议是,您应该避免在环境变量中使用密码,建议使用环境中的本机方法来存储凭据。
| 归档时间: |
|
| 查看次数: |
7815 次 |
| 最近记录: |