You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Nexus3扩展选择参数插件过滤失效,仅需获取Zip文件

解决Nexus3 Extended Choice Parameter插件Raw仓库Packaging过滤失效问题

问题根源

Raw类型仓库的文件元数据和Maven仓库逻辑不匹配,插件默认的packaging过滤是基于Maven构件的groupId/artifactId/packaging三元组规范设计的,但Raw仓库没有这些元数据字段,插件无法将文件后缀识别为packaging值,导致设置packaging=zip时无结果返回。

可行解决方案

1. 用Repository Path规则替代Packaging过滤

在插件配置中找到Repository Path字段,根据文件存放路径填写匹配规则:

  • 若zip文件在仓库根目录,填*.zip
  • 若存在子目录,填**/*.zip(递归匹配所有子目录下的zip文件)
    同时保持groupId=*、artifactId=*,packaging字段留空或设为*,即可只返回zip格式文件。

2. 自定义Groovy脚本调用Nexus API过滤

如果路径过滤不够灵活,可使用插件的Script模式(部分版本支持),通过Groovy脚本直接请求Nexus API并过滤文件:

import groovy.json.JsonSlurper

// 替换为你的Nexus实例地址和Raw仓库名称
def nexusApi = "http://your-nexus-address/service/rest/v1/assets?repository=your-raw-repo&sort=created&direction=desc"
def conn = new URL(nexusApi).openConnection()
conn.setRequestMethod("GET")
conn.setRequestProperty("Accept", "application/json")

def respData = new JsonSlurper().parseText(conn.inputStream.text)
// 过滤出后缀为zip的文件,提取文件名
def zipAssets = respData.items.findAll { it.path.endsWith(".zip") }.collect { it.name }

return zipAssets.join("\n")

将脚本配置到插件的Script选项中,即可精准获取最新的zip文件列表。

3. 统一文件后缀大小写

检查Raw仓库中的zip文件后缀是否为小写.zip,插件过滤规则默认区分大小写。如果存在大写.ZIP的文件,需统一为小写,或在路径规则中写*.{zip,ZIP}实现大小写兼容。


内容的提问来源于stack exchange,提问作者Nikhil Mehta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:42:39