版本支持校验

static {
    Enumeration<URL> resources;
    try {
        // 支持的版本配置(若 base jar 里面不含某版本,而经测试这个版本又没有问题,可以自定义添加文件避免 warn 日志)
        resources = ClassLoader.getSystemClassLoader().getResources("supportVersion.properties");
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
    StringBuilder supportVersion = new StringBuilder();
    // supportVersion.properties 文件列表
    while (resources.hasMoreElements()) {
        InputStream inputStream;
        try {
            inputStream = resources.nextElement().openStream();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        Properties prop = new Properties();
        try {
            // 解析为 Properties
            prop.load(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        // 支持的 MP 版本,逗号分隔
        String supportVersionTmp = (String) prop.get("mybatisPlus");
        supportVersion.append(",").append(supportVersionTmp);
    }
    // 支持的版本列表
    Set<String> supportVersionSet = Arrays.stream(supportVersion.toString().split(","))
            .filter(StrUtil::isNotBlank)
            .collect(Collectors.toSet());
    // 当前 MP 版本
	// maven jar 文件中的 META-INF/MANIFEST.MF 文件里面的 Implementation-Version
    String version = ParameterUtils.class.getPackage().getImplementationVersion();
    if (!supportVersionSet.contains(version)) {
        log.warn("======================> Please Test MyBatisPlus Version is Adapter: {}, and Add a supportVersion.properties file key is mybatisPlus and version is you lib version <========================", version);
    } else {
        log.info("Mybatis Plus Version is Adapter: {}", version);
    }
}
posted @ 2025-04-10 10:14  YangDanMua  阅读(15)  评论(0)    收藏  举报