Bru*_*ams 5 maven jenkins docker
配置文件提供程序插件如何工作?
我有一个Jenkinsfile用于声明性管道(多分支构建),其中包含:
configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
sh 'mvn -B -s $MAVEN_SETTINGS -DWHERE="$WHERE" deploy'
}
Run Code Online (Sandbox Code Playgroud)
我尝试在两个不同的Jenkins安装程序上运行此程序,一个直接安装并作为守护程序运行,另一个作为容器运行(jenkinsci / blueocean)。
当直接运行时,Jenkins Config File Provider插件能够提供所需的设置。
provisioning config files...
copy managed file [Maven settings] to file:/var/lib/jenkins/workspace/redacted@tmp/config8989354118161621860tmp
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
我已经为蓝色/海洋创建了一个id为maven-settings的托管maven-settings.xml文件,但是没有被拾取。我也尝试将其复制到〜/ .m2 / settings.xml
相比之下,工作中的安装没有任何托管文件(settings.xml或其他),并且我无法在工作空间中找到任何Maven设置文件。我不确定@tmp目录是什么。构建完成时将其删除。
所以我的问题是:
我应该在哪里放置设置以使configFileProvider将它们传递给jenkinsci / blueocean构建作业?
配置文件提供程序插件如何工作?
我不知道它在做什么,因此很难调试。来源在这里,但是Java,Maven和Jenkins不是我的主要领域。
Jenkins本身作为容器运行时有什么区别?
此答案表明配置文件提供程序是不必要的。
有一个类似的问题尚未解决,但它与Maven插件有关。
我已经有了部分答案。我的 maven-settings 文件没有被拾取,因为我使用的是文件名而不是不同的文件ID 。
问题的其余部分是原始 Jenkins 实例如何能够生成此文件而不将其列为托管文件。
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |