maven仓库的版本列举

简介: 这段代码是Java程序,用于分析本地Maven项目的依赖版本。它遍历指定路径下的文件,提取groupId和version信息,并存储到HashSet中。最终,这些信息被写入到一个Excel文档。主要类`test`包含一个静态内部类`Version`来封装groupId和version字段。通过递归方法`func`处理文件夹结构,获取Maven坐标信息。

在工作中,大家或多或少都会碰到关于漏洞升级的问题,漏洞包含的问题很多,比如框架自身的问题、代码逻辑的问题等,这里我写了一种关于Maven版本问题中的一小部分,怎么用代码分析本地代码的依赖版本。

package cn.com.gg.controller.mygg;

import com.alibaba.excel.EasyExcel;
import lombok.Data;

import java.io.File;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * @date 2022/8/17/017
 */
public class test {
   
    private static Set<MyggController.Version> set = new HashSet<>();

    public static void main(String[] args) {
   
        String path = "D:\\environment\\maven\\";
        File file = new File(path);
        set = func(file);
        EasyExcel.write("F://work.xls").sheet(1).doWrite(Arrays.asList(set.toArray()));
        System.out.println("文档完成");
    }

    @Data
    static class Version {
   
        private String groupId;
        private String version;

    }

    private static Set<MyggController.Version> func(File file) {
   
        File[] files = file.listFiles();
        //List<Version> list = new ArrayList<>();
        for (File f : files) {
   
            MyPggController.Version version1 = new MyggController.Version();
            if (f.isDirectory() && !f.toString().contains("cn")) {
   
                func(f);
            }
            if (f.isFile()) {
   
                String s1 = f.toString();
                int indexOf = s1.indexOf("\\", 20);
                String substring = s1.substring(indexOf, s1.lastIndexOf("\\")).replaceFirst("\\\\", "");
                int lastIndexOf = substring.lastIndexOf("\\");
                String g1 = substring.substring(0, lastIndexOf).replaceAll("\\\\", ".");
                int lastIndexOf1 = g1.lastIndexOf(".");
                g1 = g1.replace(g1.charAt(lastIndexOf1 - 1) + ".", "/");
                String v1 = substring.substring(lastIndexOf).replaceAll("\\\\", "");
                version1.setGroupId(g1);
                version1.setVersion(v1);
                set.add(version1);
            }
        }
        return set;
    }
}
目录
相关文章
|
3月前
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件(如JARs):本地仓库在首次执行时创建,默认位于`%USER_HOME%/.m2/repository/`;远程仓库包括中央仓库,存放大量开源Java构件,可在线浏览&lt;http://search.maven.org/&gt;。若本地缺失构件,Maven会从远程下载至本地。可通过settings.xml配置本地仓库路径。
|
23天前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
1月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
507 3
|
3月前
|
敏捷开发 JavaScript Java
阿里云云效产品使用合集之如何进行Maven私有仓库迁移
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
Java Maven
maven开源仓库
maven开源仓库
107 6
|
4月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件,包括依赖和插件。有本地、中央和远程三种类型。本地仓库在首次运行时创建,默认在用户目录的`.m2/repository`。Maven首先查找本地仓库,若无则从远程仓库(如中央仓库)下载。中央仓库包含大量开源Java构件,可在线浏览于http://search.maven.org/。
|
4月前
|
Java Maven
SpringBoot第一次导入项目,Maven依赖全爆红,该怎样解决,idea2019.3版本,必须用application2.7.6或者以下
SpringBoot第一次导入项目,Maven依赖全爆红,该怎样解决,idea2019.3版本,必须用application2.7.6或者以下
|
5月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理依赖,包括本地、中央和远程仓库。本地仓库在首次运行时创建,默认位于用户目录的`.m2/repository`。若本地缺少构件,Maven会从远程仓库下载,中央仓库是默认的远程源,包含大量开源Java构件。中央仓库无需配置,可通过HTTP访问,[search.maven.org](http://search.maven.org/#browse)可浏览其内容。
|
5月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件,如JARs,分为本地、中央和远程。本地仓库在首次运行时于用户目录的`.m2/repository`创建,默认位置可修改`settings.xml`。中央仓库是社区维护的,包含大量开源Java构件,可通过http://search.maven.org搜索。当本地缺失依赖时,Maven会从远程仓库下载到本地。