怎么在git上批量拉取项目代码java git JGit
2020-05-14 本文已影响0人
燃灯道童
标签 Git java JGit
自从用了微服务后,有很多相关联的小项目,看代码需要一个个项目下载下来,一个系统一般是十几个项目,如果负责一个系统还可以接受。最近交接项目比较多,有的一个系统有二十几个项目,一个个的下载,手都下残了。
能不能把一个系统系统下的项目批量下载下来呢?
寻师访友,才知道有JGit这个玩意,真是开发者的福音,所有重复的内容都能抽离出来。
从同事那里拿来代码,迫不及待的跑起来赶紧把要接手系统的代码下载下来。
一直报这样一个错误:Authentication is required but no CredentialsProvider has been registered
代码明明是有权限的。
![](https://img.haomeiwen.com/i18422753/89f7424c54b4e5a3.png)
已经通过这个类(CredentialsProvider)绑定用户名和密码了,但还是不行。
索性在最后克隆时再写一遍,然后顺利下载了代码。原因是在前面绑定的内容进到最后clone代码的方法时,参数没有传进去导致的。
我整的是一个工程,点击测试类直接可以下载,简书上不能传压缩包,有需要的可以给我留言。
代码精华部分如下:
CredentialsProvider cp = new UsernamePasswordCredentialsProvider(username, password);//git登录时的用户名和密码
try (Git result = Git.cloneRepository()
.setURI("http://172.20.1.2/team/myrepo.git")//需要下载的git的地址,这里是具体的一个项目,可以设置循环去下载
.setDirectory(new File("c:\\temp\\gittest"))//下载到本地的目录
.setCredentialsProvider(cp)
.call()) {
System.out.println("Having repository: " + result.getRepository().getDirectory());
}
下载代码只是JGit的一小部分功能,能用git命令操作的,基本都可以用代码实现。代码权限比较高的,可以由管理员统一管理进行操作(代码审查通过后运行程序进行提交)。还没经历过这种情况。