JGitを使用してgitUrlを介してGitのすべてのブランチを取得


JGitを使用してgitUrlを介してGitのすべてのブランチを取得
本文のコードはすでにコードクラウドに同期して、みんなstar https://gitee.com/njitzyd/JavaDemoCollectionを歓迎します
問題の導入
企業では、コード仕様について規約する場合、jarパッケージのコードが遡及可能であることを保証する必要があります.特に大企業では、sonarを通じてコードの管理を行い、自分でmavenプラグインを作成して規範を定義し、Jenkinsを通じて持続的な公開と導入を自動化するなど、コード品質の検査も多い.では、あなたが発表したjarパッケージを提出するときはgitアドレスに基づいてブランチを引き出し、ブランチを選択する必要があります.gitアドレスに基づいてすべてのブランチを取得するにはどうすればいいですか?
jGitの使用
新しいmavenプロジェクト、依存関係の追加
 
        
            org.eclipse.jgit
            org.eclipse.jgit
            5.5.1.201910021850-r
        

        
            org.apache.commons
            commons-lang3
            3.10
        

新しいテストクラス
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 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 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

コードのすべてのブランチがすでに手に入っているのが見えて、これで機能が実現しました!!!