当前位置: 首页 > 知识库问答 >
问题:

如何调用存储在Jenkins中的凭据,从Jenkins文件中部署到自定义Nexus?

景鸿才
2023-03-14

我有一个定制的Nexus,用于与项目相关的实用程序jar。我有一个詹金斯来做这些罐子。

我想在项目中使用gradle和Jenkins文件来定义管道。作为最后一个阶段,我希望构建工作将工件部署到我的Nexus。

由于我不希望Nexus的凭据出现在我的源存储库中(因此gradle脚本和Jenkins文件中都不需要),我在Jenkins凭据插件中设置了一个凭据条目,其中包含Nexus的用户和密码。

如何从Jenkins文件中引用这些凭据,以便使用它们部署到Nexus?

目前,我的部署阶段如下所示:

stage('Publish') {
    sh "gradle upload"
}

我能用gradle做这个用途吗?我知道我可以在本地使用它,但我可以在Jenkins文件中使用不同的命令。

在gradle中,我用它来定义任务:

def nexusUser = "$System.env.NEXUS_USER"
def nexusPass = "$System.env.NEXUS_PASS"

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "http://nexus.example.com/repository/maven-releases/") {
                authentication(userName: nexusUser, password: nexusPass)
            }
        }
    }
}

(我在本地设置用户和密码为环境变量。当然,詹金斯夫妇没有这种选择。)

共有2个答案

楚冷勋
2023-03-14

您可以使用withCredentials(){}步骤注入环境变量,这些变量将仅在{}块中可见。

柴声
2023-03-14

可以在~/中设置外部变量。格雷德尔/格雷德尔。属性nexusUser=superuser nexusPass=superpassword

 类似资料:
  • 我正在尝试创建一个定制的Jenkins管道,它将多个Jenkins作业生成的工件绑定在一起。每个作业都在不同的存储库上运行(基于它们自己的文件)。这些Jenkins文件的阶段完成了创建档案、编译代码等任务。 有人可能会说,我可以使用单个作业中的工件,然后将它们绑定在一起,但问题是这个高级管道将在特定的 ,因此它无法凭空创建存档。 由于我是詹金斯管道公司的新手,您对如何解决这个问题有什么建议吗? 最

  • 我正在使用jenkins和Jobdsl创建jenkins的工作。我试图通过在active choice参数中添加一个groovy脚本来构建一个参数化作业。脚本使用存储在jenkins凭据中的凭据,我正试图通过使用代码在脚本中获取它

  • 问题内容: 我有一个在Jenkins中运行的多模块Maven项目。我想将最终的工件(程序集构建中的RPM)部署到Nexus服务器。我认为没有理由部署中间工件(因此没有“ mvn clean deploy”),因为这会在服务器上产生我不需要的额外垃圾。我们正在尝试建立一个持续交付管道,因此我们从未部署过SNAPSHOT版本。Jenkins的各种插件似乎都专注于部署所有工件。我该如何部署自己选择的那个

  • 我已经在的Jenkins中输入了AWS凭据,但是它们不会显示在AWS Elastic Beanstek插件中的Post Build步骤的下拉列表中。 如果我单击验证凭据,我会得到这个奇怪的错误。 失败com.amazonaws.SdkClientException:无法从链中的任何提供者加载AWS凭据:[环境变量凭据提供者:无法从环境变量(AWS_ACCESS_KEY_ID(或AWS_ACCESS

  • 错误:Publisher hudson.plugins.deploy.deploypublisher因异常org.codehaus.cargo.container.containerException:在org.codehaus.cargo.container.internal.abstractTomCatManagerDeployer.redeploy[/home/affiza/workspac

  • 当我们在“来自SCM的管道脚本”中定义Jenkinsfile位置时,我们定义了应用于SCM的Jenkinsfile位置和凭据。 但是在Jenkins文件中,我们实际上放置了相同的url和凭据ID。看起来像是代码重复。另一个问题是,我们不希望编辑Jenkins文件的用户放置任何凭据ID,而是使用在Jenkins作业步骤中定义的“SCM定义”下的凭据ID。 是否可以从作业中获取SCM位置和凭据ID?