当前位置: 首页 > 面试题库 >

从詹金斯将凭据传递给Maven

戚高洁
2023-03-14
问题内容

我有一个运行Jenkins的节点,该节点使用Maven构建代码。Jenkins作业是声明性管道脚本。Maven需要从需要证书才能访问的私有存储库中下载依赖项。凭证存储在Jenkins凭证管理器中。

我如何将这些凭据传递给Maven,以便Maven可以使用这些凭据从私有存储库正确下载依赖项。


问题答案:

通过将Jenkins凭证注入您的环境,然后将这些凭证传递给Maven,您可以使用Jenkins凭证访问私有存储库。

脚步:

  1. 如果还没有创建一对新的Jenkins凭证(我正在使用ID“ test-creds”)
  2. 使用以下问题的说明:如何通过环境变量传递Maven设置。在需要凭据的maven命令周围,使用“ withCredentials”块。然后将这些凭据传递给Maven。

    withCredentials([usernamePassword(credentialsId: 'test-creds', passwordVariable: 'PASSWORD_VAR', usernameVariable: 'USERNAME_VAR')])
    {
        sh 'mvn clean install -Dserver.username=${USERNAME_VAR} -Dserver.password=${PASSWORD_VAR}'
    }
    
  3. 在您的 settings.xml 文件中,引用以下变量:

    <servers>
        <server>
            <id>yourRepoName</id>
            <username>${server.username}</username>
            <password>${server.password}</password>
        </server>
    </servers>
    
  4. 如果需要指定settings.xml文件,则可以在maven命令中使用-s-gs标志。



 类似资料:
  • 我有一个 Jenkins Job DSL 种子作业,它调用了几个管道作业,例如 job1.groovy和job2.groovy是标准的Jenkinsfile样式管道。 我想在这些作业中传递一些常用的地图。这些内容可能因环境而异,例如目标服务器、凭据名称。 类似于: 我可以在我的种子作业中定义一个映射,然后在我的管道作业中作为映射进行传递和访问吗?

  • 问题内容: 当前,我有一个具有不同参数的管道作业,其中此参数之一是Choice参数。这是该作业参数的config.xml输出: 现在,我可以通过传递字符串参数从管道调用此作业: 但是我无法为选择参数定义参数: 我尝试了以下方法: 但这失败并显示以下错误: 因此问题是:如何在调用其他管道作业时定义选择参数: 有人有这样的例子吗? 问题答案: 我看过一个使用以下语法的工作示例: 基本上,不要以特殊的方

  • 问题内容: 我向Jenkins添加了SSH凭据。 不幸的是,我忘记了SSH密码,现在想从位于的Jenkins凭据档案中获取它。 该XML文档似乎已使用XML标记或加密了凭据。 如何获取明文密码? 问题答案: 通过访问来打开Jenkins安装的脚本控制台。 在那里,执行以下Groovy脚本: 您要寻找的或XML元素的加密内容在哪里。

  • 问题内容: 我有一个詹金斯工作,带有“主动选择参数”和“主动选择反应参数”。 我试图调用詹金斯的工作,并使用管道脚本传递参数值。但是,我收到以下错误: 参数’ActiveChoicesParam’不具有App_Build期望的类型。转换为有效选择参数。 参数’ActiveChoicesReactiveParam’不具有App_Build期望的类型。转换为活动选择反应参数。 它们(Dev和Serve

  • 有没有可能让詹金斯使用真正的浏览器而不是无头浏览器?我正在运行一些用TestNG编写的测试(使用Selenium webdriver)。当我运行testng时。在Eclipse中,浏览器启动并运行测试。但当我使用Jenkins并用maven运行测试时,它不会启动任何浏览器。

  • 问题内容: 我想以某种方式将在阶段A中读取的变量传递给阶段B。在某些示例中,我看到人们将其写入文件中,但是我认为这并不是一个很好的解决方案。我尝试将其写入环境变量,但是在此方面我并没有真正成功。如何正确设置? 为了使它正常工作,我尝试了很多事情,并读到我应该使用“””而不是“’‘来启动外壳程序并将这些变量转义为例如。 以下是我拥有的管道: 如您所见,我从阶段 Package中 读取的内容也需要在阶