Jenkins使用docker来构buildmaven图像不能访问nexus

我正在使用Jenkinspipe道下载我的代码,并在官方的Maven容器中构build它

pipeline { agent none stages { stage('Back-end build') { agent { docker { image 'maven' label 'master' } } steps { sh 'mvn -f de.vitasystems.qrcode.generator/pom.xml -s /usr/share/maven/ref/settings.xml clean package' stash includes: 'target/*.war', name: 'app' } } } } 

这样做后,我意识到我需要nexus库configuration的settings.xml和settings-security.xml,以允许下载它。 然后我做了这个:

  1. 我创build了另一个使用Maven的Dockerfile(FROM maven),它复制了必要的文件setting.xml,并在之前的pipe道中使用过。
  2. 它指的是正确的存储库,但没有授权下载文件

添加security-settings.xml是为了能够从我的nexus(maven nexus密码)下载数据,但我不能引用它或使用它。

我怎样才能在这个容器中使用security-settings.xml? Maven文档说,我把文件放在$ HOME / .m2文件夹中,但是不起作用。 问候。

尝试使用configuration文件提供者插件,他会将主文件中的settings.xml复制到工作区中

 stage('Build') { steps { configFileProvider( [configFile(fileId: 'your-id-xxx', variable: 'MAVEN_SETTINGS')]) { sh 'mvn -s $MAVEN_SETTINGS clean install -P integration-tests' } 

我已经find了解决scheme,设置安全性不会使用,直到你与root用户。 我做了一个Dockerfile来创build一个新的docker镜像:

 FROM maven COPY settings.xml /root/.m2/settings.xml COPY settings-security.xml root/.m2/settings-security.xml ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"] CMD ["mvn"] 

这个镜像将包含安全configuration,但是可以在jenkins文件中使用,需要使用root用户运行容器。 例

 agent { docker { image 'maven' label 'master' args '-u root' }