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

在Micronaut 3.7+中如何将自定义文件添加到生成的resource-config.json中

在Micronaut 3.7+中如何将自定义文件添加到生成的resource-config.json中

没问题,针对你在Micronaut应用里需要把Google LibPhoneNumber的ProtoBuf资源文件加入到resource-config.json的需求,有两种实用方案,我给你详细拆解:

方案一:通过Micronaut Gradle插件直接配置

这是最直接的方式,你可以在项目的build.gradle(或build.gradle.kts)里通过micronaut扩展来定义要包含的资源模式,不用一个个手动列文件:

Groovy DSL版本

micronaut {
    resources {
        includes {
            // 用通配符匹配所有国家的PhoneNumberMetadata文件
            pattern 'com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_*'
            // 匹配所有国家的ShortNumberMetadata文件
            pattern 'com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_*'
        }
    }
}

Kotlin DSL版本

micronaut {
    resources {
        includes {
            pattern("com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_*")
            pattern("com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_*")
        }
    }
}

这样配置后,Micronaut Gradle插件在生成resource-config.json时,会自动把这些通配符模式添加到includes列表里,一次性覆盖你需要的所有国家的ProtoBuf文件,比逐个添加高效多了。

方案二:通过源码注解配置

如果你希望把资源配置和代码绑定在一起,可以使用Micronaut的@ResourceConfig注解,创建一个空的配置类来承载这个注解:

Java版本

import io.micronaut.context.annotation.ResourceConfig;

@ResourceConfig(
    includes = {
        "com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_*",
        "com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_*"
    }
)
public class PhoneNumberResourceConfig {
    // 无需编写任何逻辑,仅作为注解的载体
}

Groovy版本

import io.micronaut.context.annotation.ResourceConfig

@ResourceConfig(
    includes = [
        "com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_*",
        "com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_*"
    ]
)
class PhoneNumberResourceConfig {}

当Micronaut构建应用时,会扫描到这个注解,并自动将指定的资源模式合并到生成的resource-config.json中。

验证配置是否生效

配置完成后,运行./gradlew assemble(Windows下用gradlew.bat assemble),然后查看项目的build/classes/java/main/META-INF/micronaut/resource-config.json文件,你会发现指定的资源模式已经被添加到includes数组里了,说明配置生效。

另外要注意:Micronaut会自动合并默认的资源配置和你自定义的配置,不用担心覆盖原有内容,两者会共存于最终的resource-config.json中。

备注:内容来源于stack exchange,提问作者saw303

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 12:49:06