我有几个驻留在 GitLab 中的 Maven 项目(不是多模块)。我喜欢为这些项目设置 GitLab CI,所以我查看了 gitlab-ci.yml 文件以了解如何执行此操作。
我找到了https://docs.gitlab.com/ee/ci/examples/artifactory_and_gitlab ,其中描述了将 settings.xml
在项目本身中,然后在 gitlab-ci 文件中引用它。
但我想知道,当有多个需要这个 settings.xml
的项目时,如何做到这一点,因为在存储库中多次放置它似乎很糟糕。
在本地我有它在我的 .m2 目录中,但是如何以及在何处将它放在管道的 gitlab 服务器上?
最佳答案
我通过 config.toml
挂载主机卷如下例:-
concurrent = 1
check_interval = 30
[[runners]]
name = "some-name"
url = "url/to/gitlab/"
token = "some-token"
executor = "docker"
[runners.docker]
tls_verify = false
image = "some-maven-image"
privileged = false
disable_cache = false
volumes = ["...", "path/to/host/dir:/some/name:rw"]
pull_policy = "if-not-present"
shm_size = 0
[runners.cache]
而
path/to/host/dir
是主机上的路径,其中包含许多文件,包括 settings.xml
, settings-security.xml
等等,根据项目要求。另一方面,/some/name
是 docker 内的一个目录。在
.gitlab-ci.yml
,我提供before_script
如下例:-before_script:
- cp -f /some/name/settings.xml $HOME/.m2/settings.xml
- cp -f /some/name/settings-security.xml $HOME/.m2/settings-security.xml
- ...
after_script:
- rm -f $HOME/.m2/settings.xml
- rm -f $HOME/.m2/settings-security.xml
- ...
请访问Advanced configuration有关
config.toml
的更多信息.
关于maven - 在基于 docker 的 GitLab CI 设置中为 maven 存储 settings.xml 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54194249/