Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 如何将custom settings.xml与GitLab CI Auto ;德沃斯?_Maven_Gitlab_Gitlab Ci_Buildpack_Gitlab Autodevops - Fatal编程技术网

Maven 如何将custom settings.xml与GitLab CI Auto ;德沃斯?

Maven 如何将custom settings.xml与GitLab CI Auto ;德沃斯?,maven,gitlab,gitlab-ci,buildpack,gitlab-autodevops,Maven,Gitlab,Gitlab Ci,Buildpack,Gitlab Autodevops,我正在使用GitLab CI自动 DevOps编译一个基于DinD(docker in docker)运行程序中Maven的项目 CI作业启动,并且正确检测到Maven的buildpack(基于herokuish) 如何配置自定义设置文件而不切换到自定义.gitlab-ci.yml 我想继续使用自动 DevOps.由于maven需要访问基于Nexus的私有存储库,因此可以方便地配置自定义settings.xml(并使用源代码对其进行版本设置) 最简单的解决方案是包含自定义settings.xml

我正在使用GitLab CI自动 DevOps编译一个基于DinD(docker in docker)运行程序中Maven的项目

CI作业启动,并且正确检测到Maven的buildpack(基于herokuish)

如何配置自定义设置文件而不切换到自定义.gitlab-ci.yml


我想继续使用自动 DevOps.

由于maven需要访问基于Nexus的私有存储库,因此可以方便地配置自定义settings.xml(并使用源代码对其进行版本设置)

最简单的解决方案是包含自定义settings.xml。这项功能包含在Auto DevOps不久前使用的相应构建包中,您可以在本文中看到

因此,我在
.gitlab ci.yml
配置文件中定义了MAVEN\u SETTINGS\u PATH变量:

variables:
 - MAVEN_SETTINGS_PATH: ".m2/settings.xml"
然后,将文件
settings.xml
包含在存储库中。 避免包含机密或其他敏感信息

使用带有凭据的专用maven存储库时 最后,您可以在Gitlab中定义一些变量,以便在
settings.xml
中使用。使用Gitlab UI或API为用户、密码和存储库url添加变量,作为环境变量从Gitlab包含到作业中。然后可以在
settingx.xml
中使用它,比如
${env.VARIABLE\u 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