gpt4 book ai didi

jenkins-declarative-pipeline - Jenkins 声明式管道和自定义 Maven settings.xml

转载 作者:行者123 更新时间:2023-12-04 10:54:47 26 4
gpt4 key购买 nike

我有一个 Maven 项目,它从公司网络内的私有(private)存储库 (Nexus) 解决了它的一些依赖项。因此,它只能使用自定义 settings.xml 来构建,其中存储了私有(private)存储库的凭据。

maven 项目由 Jenkins 使用声明式管道构建。构建作业是一个多分支管道。

在 Jenkins 的作业配置中,在“管道 Maven 配置”下,我指定了一个设置文件(托管文件)和一个全局设置文件。

然而,管道本身似乎完全忽略了这个设置。

似乎要使用自定义 settings.xml,我必须将每个 mvn 调用包装到 withMaven() {...} block 或 configFileProvider () {...} block 中。

当我这样做时,它工作正常,但由于此管道中有很多 mvn 调用,这会使管道不必要地复杂。

是否有另一种方法让 maven 获取自定义 settings.xml 文件?

如果在管道内没有进一步配置的情况下不使用指定的文件,那么“管道 Maven 配置”设置的意义何在?

最佳答案

目前我将采用以下方法......

将我的 maven 用户设置文件放在我的 SCM 中的 Jenkinsfile 旁边。在 jenkins 文件的“工具”部分声明要使用的 Maven:

  tools {
maven 'Maven 3.6.3'
jdk 'AdoptOpenJDK_8u222'
}

然后我使用“-s”命令行选项将用户设置添加到每个 Maven 调用中:

  steps {
sh 'mvn pmd:pmd -s usersettings.xml'
}

仍然不喜欢重复添加用户设置,但比运行“withMaven()”更精简 - 更快。

更新可以像这样用 Groovy 函数包装 Maven 调用

def mvn(String cmd) {
sh "mvn ${cmd} -s usersettings.xml"
}

整理流水线脚本:

steps {
mvn 'pmd:pmd'
}

关于jenkins-declarative-pipeline - Jenkins 声明式管道和自定义 Maven settings.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59280929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com