关于程序员:使用jGit-通过gitUrl-获取Git的所有分支

39次阅读

共计 1590 个字符,预计需要花费 4 分钟才能阅读完成。

应用 jGit 通过 gitUrl 获取 Git 的所有分支

本文代码曾经同步到码云,欢送大家 star https://gitee.com/njitzyd/JavaDemoCollection

问题引入

在企业中,在针对代码标准规约的时候,就须要保障你的 jar 包的代码是可追溯的。尤其在大的企业里,对代码品质的查看也是很多的,比方通过 sonar 进行代码的治理,通过本人编写 maven 插件来自定义标准并通过 Jenkins 去自动化继续公布和部署。那么在进行提交你所公布的 jar 包时就须要依据你的 git 地址去拉取你的分支,而后你要抉择你的分支,那如何依据 git 地址获取所有分支?

jGit 的应用

新建 maven 工程,增加依赖

 <!--jGit -->
        <dependency>
            <groupId>org.eclipse.jgit</groupId>
            <artifactId>org.eclipse.jgit</artifactId>
            <version>5.5.1.201910021850-r<ersion>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.10<ersion>
        </dependency>

新建测试类

public class GitTest {public static void main(String[] args) throws Exception {GitTest test = new GitTest();
        test.getRemoteBranchs("https://gitee.com/njitzyd/JavaDemoCollection.git","你的仓库用户名","你的仓库明码");


    }

    public void getRemoteBranchs(String url, String username, String password){
        try {
            Collection<Ref> refList;
            if (StringUtils.isNotEmpty(username) && StringUtils.isNotEmpty(password)) {UsernamePasswordCredentialsProvider pro = new UsernamePasswordCredentialsProvider(username, password);
                refList = Git.lsRemoteRepository().setRemote(url).setCredentialsProvider(pro).call();} else {refList = Git.lsRemoteRepository().setRemote(url).call();}
            List<String> branchnameList = new ArrayList<>(4);
            for (Ref ref : refList) {String refName = ref.getName();
                if (refName.startsWith("refs/heads/")) {                       // 须要进行筛选
                    String branchName = refName.replace("refs/heads/", "");
                    branchnameList.add(branchName);
                }
            }

            System.out.println("共用分支" + branchnameList.size() + "个");
            branchnameList.forEach(System.out::println);
        } catch (Exception e) {System.out.println("error");
        }
    }
}

运行查看后果

 共用分支 2 个
develop
master

能够看到代码的所有分支曾经拿到,这样就实现了性能!!!

正文完
 0