我正在尝试使用 Jenkins Pipelines 构建一个 Maven Java 项目并将其工件部署到 Nexus 中。Nexus 凭据由 Jenkins 管理,因此我需要 Jenkins 提供 Maven settings.xml 文件。我的管道用于docker
运行构建。我的Jenkinsfile
样子:
node('docker') {
git 'git@bitbucket.org:myorg/myproject.git'
stage 'Build and Test'
// This throws: java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.InvokerInvocationException for security reasons
//configFileProvider([configFile(fileId: '7d6efcd2-ff3d-43dc-be40-898dab2bff64', variable: 'MYSETTINGS')]) {
// sh 'cp ${MYSETTINGS} mysettings.xml'
// }
docker.image('maven:3.3.9').inside {
// sh 'mvn -s mysettings.xml -U -e clean deploy'
// This fails trying to access AWS ECR (???)
withMaven(mavenSettingsConfig: '7d6efcd2-ff3d-43dc-be40-898dab2bff64') {
sh 'mvn -U -e clean deploy'
}
}
到目前为止,我无法提供正确的 Maven 设置。withMaven 有一些“知道限制”(Maven 管道插件,https: //wiki.jenkins-ci.org/display/JENKINS/Pipeline+Maven+Plugin )
有解决方法吗?我尝试使用 configFileProvider,但由于安全原因,它会抛出 UnsupportedOperationException。