Linux 使Jenkins元数据可用于项目
我已经设置了Jenkins服务器+元数据插件() 我很难理解如何在项目中使用此元数据。我使用Linux 使Jenkins元数据可用于项目,linux,jenkins,jenkins-plugins,Linux,Jenkins,Jenkins Plugins,我已经设置了Jenkins服务器+元数据插件() 我很难理解如何在项目中使用此元数据。我使用Jenkins->MetadataConfiguration页面添加了一些带有默认值的键(例如some\u METADATA\u KEY,默认值FOO作为字符串)暴露于环境也被选中 现在,如果我创建一个新项目,在“元数据”部分,我可以看到一些元数据\u键作为一个预设值 我如何使用它?我希望它最终出现在我的构建环境中;仅使用env运行shell脚本不会显示变量 在项目中,我尝试过: 创建了一个与预定义变量
Jenkins->MetadataConfiguration
页面添加了一些带有默认值的键(例如some\u METADATA\u KEY
,默认值FOO
作为字符串)<代码>暴露于环境也被选中
现在,如果我创建一个新项目,在“元数据”部分,我可以看到一些元数据\u键
作为一个预设值
我如何使用它?我希望它最终出现在我的构建环境中;仅使用env
运行shell脚本不会显示变量
在项目中,我尝试过:
- 创建了一个与预定义变量同名的新字符串值,没有设置值(我希望获得预定义值作为默认值)-->失败,变量根本没有设置
- 创建一个具有不同名称(即
)和SOME\u FOOBAR\u KEY
-->值的新字符串值失败,变量的值为“$SOME\u METADATA\u KEY”,而不是$SOME\u METADATA\u KEY
FOO
我的目标是能够在一个地方定义“全局”值,并将它们作为环境变量用于多个项目。元数据很奇怪。如果您希望像使用全局环境变量一样使用它,那么它不会按照您想要的方式运行 从: 我们区分元数据定义和元数据值。这个想法来自Jenkins的参数设置。 MetadataValue是在项目或从属服务器的配置页面上设置的值,也是为构建保存的值 管理员使用元数据定义来确保所有项目上都存在某些元数据。 MetadataDefinition通过一个特殊的配置页面进行设置,为定义配置名称和默认值。 一旦设置,MetadataDefinition将在服务器上的所有项目中结束,并在配置项目时提示用户为其设置值。 然后将MetadataDefinitions转换为MetadataValue 据我所知,您当前有一个元数据定义(来自全局元数据配置),需要将其更改为元数据值,以便在项目中可用 如何将定义转换为值的规则没有得到很好的解释。根据我的经验,编辑项目的配置并选择或编辑特定的预设值似乎会将定义作为值导入到项目中。因此,如果遵循以下步骤,您可以在项目的构建环境中看到元数据:
MY_key
)和值,确保选中了“暴露于环境”MD\u MY\u KEY
基于所有这些,我会关注如何在许多项目的全局定义中使用价值。我怀疑当项目将定义转换为值时,项目的值可能与全局定义值分离。元数据文档意味着定义是为了确保项目上存在元数据,而不一定是为了跨项目管理相同的值 我想我终于明白了。您需要转到
Jenkins->Configure System->Global properties
,选中元数据
,并在那里添加值,选中暴露于环境
我不知道元数据配置
是如何联系在一起的,它要么是坏的,要么是非常违反直觉的:(
稍后编辑:好的,我错了。它不起作用。但我找到了一种实现我想要的方法,
Jenkins->Configure System->Global properties->Environment Variables
,将所有内容都设置在那里。根据元数据插件页面,环境变量的前缀将是MD
。您检查了吗MD\u一些元数据\u键
?是的,我使用env
打印了所有内容,没有任何内容;当然,除非我在项目本身内部定义了值(在这种情况下它可以工作);但我想以某种方式使用预设值。的确,元数据插件很奇怪。我不确定您在第2步选择的意思;是的,我看到了预设变量“MY_KEY”在我的项目配置中使用其默认值,我可以编辑该值。但无论是否使用默认值,该变量在我的环境中都不可用,无论是my_KEY
还是MD_my_KEY
(只需运行“env”作为shell脚本构建步骤进行测试)@未知有趣,您描述的行为与我的不匹配。在项目配置中,如果我选择(单击现值字段)值或编辑值时,变量会显示在环境中。Jenkins 1.565.1 LTS,Metadata 1.1.0b。我使用的是1.585和1.1.0b。我将尝试获取您的Jenkins版本并重试。不知道我在这里做了什么不同。您能发现我配置中的任何问题吗?