Java操作Git增量发布

Java操作Git增量发布

引入maven依赖

<dependency><groupId>org.eclipse.jgit</groupId><artifactId>org.eclipse.jgit</artifactId><version>3.5.0.201409260305-r</version>
</dependency>

具体代码:

@Test
public void test3() throws IOException, GitAPIException {Repository repository = new FileRepositoryBuilder().setGitDir(new File("/Users/brucexie/Documents/work/.git")).build();Git git = new Git(repository);DiffCommand diff = git.diff();List<DiffEntry> call = diff.call();List<String> diffFileList = new ArrayList();for (DiffEntry diffEntry : call) {String newPath = diffEntry.getNewPath();if (newPath.indexOf("/") > 0)diffFileList.add(newPath.substring(newPath.lastIndexOf("/") + 1));elsediffFileList.add(newPath);}System.out.println("变更文件列表如下:");diffFileList.stream().forEach(System.out::println);System.out.println("\n准备发送文件...\n");diffFileList.stream().forEach(item -> {try {System.out.printf("SCP 开始发送文件 \n %s ... ", item);TimeUnit.SECONDS.sleep(1);System.out.printf("\n完成发送文件 %s \n", item);} catch (InterruptedException e) {e.printStackTrace();}});System.out.println("准备执行dos命令: ");System.out.println(run("git status"));}public static String run(String command) throws IOException {Scanner input = null;String result = "";Process process = null;try {process = Runtime.getRuntime().exec(command);try {//等待命令执行完成process.waitFor(10, TimeUnit.SECONDS);} catch (InterruptedException e) {e.printStackTrace();}InputStream is = process.getInputStream();input = new Scanner(is);while (input.hasNextLine()) {result += input.nextLine() + "\n";}result = command + "\n" + result; //加上命令本身,打印出来} finally {if (input != null) {input.close();}if (process != null) {process.destroy();}}return result;
}

执行结果:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部