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

如何配置Renovate排除Maven pom.xml中parent标签的version更新?

解决Renovate自动更新Maven Parent版本的问题

问题背景

我当前使用的Renovate配置文件如下:

module.exports = {
    endpoint: 'https://git.myOrg.info/',
    password: '${password}',
    username: '${username}',
    platform: 'bitbucket-server',
    repositories: ['myRepo/myService'],
    branchPrefix: 'team/renovate-',
    commitMessagePrefix: 'Renovate : ',

    onboarding: false,
    
    requireConfig: "ignored",
    
    enabledManagers: ["maven", "npm"],

    hostRules: [
       
        {
            hostType: 'maven',
            matchHost: 'https://my.org.io/',
            username: '${user}',
            password: '${key}',
        },
        
        {
            hostType: 'npm',
            matchHost: 'my.org.io', // 原配置此处缺失闭合引号,需修正
            username: '${user}',
            password: '${key}',
        }
    ],
    packageRules: [
        {
            matchUpdateTypes: ["major"],
            enabled: false
        },
        
        {
            matchDatasources: ["npm"],
            registryUrls: ["https://my.org.io/..../"]
        },
        {
            matchDatasources: ["maven"],
            registryUrls: ["https://my.org.io/..../"]
        },
        
        {
            matchManagers: ["npm"],
            matchUpdateTypes: ["minor","patch"],
            groupName: "npm minor"
        },
        {
            matchManagers: ["maven"],
            matchUpdateTypes: ["minor","patch"],
            groupName: "maven minor and patch"
        },
    ]
};

我的某个Maven模块pom.xml里的parent标签是这样的:

<parent>
    <groupId>org.myservice.com</groupId>
    <artifactId>myservice-client-parent</artifactId>
    <version>5.x-SNAPSHOT</version>
</parent>

现在Renovate在更新其他依赖时,会自动把这个parent的版本从5.x-SNAPSHOT改成5.70.0,我需要修改配置阻止这种情况。

解决方案

在Renovate配置的packageRules数组中添加一条精准匹配该parent的规则,禁用它的更新:

修改后的packageRules部分

packageRules: [
    {
        matchUpdateTypes: ["major"],
        enabled: false
    },
    
    {
        matchDatasources: ["npm"],
        registryUrls: ["https://my.org.io/..../"]
    },
    {
        matchDatasources: ["maven"],
        registryUrls: ["https://my.org.io/..../"]
    },
    
    {
        matchManagers: ["npm"],
        matchUpdateTypes: ["minor","patch"],
        groupName: "npm minor"
    },
    {
        matchManagers: ["maven"],
        matchUpdateTypes: ["minor","patch"],
        groupName: "maven minor and patch"
    },
    // 新增规则:忽略指定Maven Parent的更新
    {
        matchManagers: ["maven"],
        matchGroupIds: ["org.myservice.com"],
        matchArtifactIds: ["myservice-client-parent"],
        enabled: false
    }
]

这条新增规则会精准匹配你指定的parent依赖,Renovate就不会再尝试更新它的版本了。另外注意原配置中hostRules里的npm规则有语法错误(matchHost值缺失闭合引号),建议修正避免配置失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:57:45