【问题标题】:How does the Jenkins config file provider plugin work?Jenkins 配置文件提供程序插件如何工作?
【发布时间】:2019-09-21 04:54:15
【问题描述】:

配置文件提供程序插件如何工作?

我有一个用于声明性管道(多分支构建)的 Jenkinsfile,其中包含:

configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
    sh 'mvn -B -s $MAVEN_SETTINGS -DWHERE="$WHERE" deploy'
}

我尝试在两个不同的 Jenkins 安装上运行它,一个直接安装并作为守护进程运行,另一个作为容器运行 (jenkinsci/blueocean)。

当直接运行时,Jenkins Config File Provider 插件能够提供所需的设置。

provisioning config files...
copy managed file [Maven settings] to file:/var/lib/jenkins/workspace/redacted@tmp/config8989354118161621860tmp

在 jenkinsci/blueocean 容器下运行时失败:

provisioning config files...
not able to provide the file [ManagedFile: id=maven-settings, targetLocation=null, variable=MAVEN_SETTINGS], can't be resolved by any provider - maybe it got deleted by an administrator

我已经创建了一个托管 maven-settings.xml 文件,其 id 为 maven-settings for blue/ocean,但它没有被拾取。 我也尝试将其复制到 ~/.m2/settings.xml

相比之下,工作安装没有任何托管文件(settings.xml 或其他文件),我无法在工作区中找到任何 Maven 设置文件。我不确定@tmp 目录是什么。它会在构建完成时被删除。

所以我的问题是:

我应该把设置放在哪里让 configFileProvider 将它们传递给 jenkinsci/blueocean 构建作业?

配置文件提供程序插件如何工作?

我不知道它在做什么,所以很难调试。来源是 here,但 Java、Maven 和 Jenkins 不是我的主要领域。

Jenkins 本身作为容器运行时有什么不同?

This answer 建议不需要配置文件提供程序。

有一个 similar question 未得到答复,但它与 maven 插件有关。

【问题讨论】:

    标签: maven docker jenkins


    【解决方案1】:

    我有部分答案。我的 maven-settings 文件没有被拾取,因为我使用的是文件名而不是文件 Id,这是不同的。

    问题的其余部分是原始 Jenkins 实例如何能够在不将其列为托管文件的情况下生成此文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 2023-04-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多