首先下载statsvn.jar,下载链接如下
https://github.com/AusHick/StatSVN/releases/tag/v0.7.1
java编写SVN统计代码数量,生成分析报告如下:
public class SVNTongji {
//项目路径
private static final String projectPath = "F:\\MyWork\\SVN\\baogaotongji";
//statsvn.jar路径
private static final String statsvnPath = "F:\\statsvn";
//分析报告输出路径
private static final String outputPath = "F:\\svnLog";
public static void main(String[] args) {
try {
String svn = "svn log -v --xml > logfile.log";
System.out.println("======生成logfile.log开始=====");
StringBuffer svncommand = new StringBuffer();
//切换到项目路径,项目在F盘
svncommand.append("cmd /c f:");
svncommand.append(String.format(" && cd %s", projectPath));
svncommand.append(String.format(" && " + svn));
Runtime.getRuntime().exec(svncommand.toString());
System.out.println("======生成logfile.log结束=====");
System.out.println("======生成代码统计,生成分析报告开始=====");
StringBuffer command = new StringBuffer();
//切换到statsvn.jar所在路径,statsvn.jar项目在F盘
command.append("cmd /c f:");
//这里的&&在多条语句的情况下使用,表示等上一条语句执行成功后在执行下一条命令,
//也可以使用&表示执行上一条后台就立刻执行下一条语句
command.append(String.format(" && cd %s", statsvnPath));
command.append(" && java -jar statsvn.jar " + projectPath + "\\logfile.log " + projectPath);
command.append(" -output-dir " + outputPath);
System.out.println(command.toString());
Runtime.getRuntime().exec(command.toString());
System.out.println("======生成代码统计,生成分析报告结束=====");
System.out.println("======分析报告输出路径:" + outputPath);
} catch (Exception e) {
e.printStackTrace();
}
}
}