获取版本号
try {
Process process = Runtime.getRuntime().exec("git tag --sort=-v:refname");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
获取提交记录
try {
Process process = Runtime.getRuntime().exec("git log --pretty=format:%s");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
通过git地址获取版本号
public static void main(String[] args) throws Exception {
URI repoUri = new URI(".git");
LsRemoteCommand lsRemoteCommand = new LsRemoteCommand(null);
lsRemoteCommand.setHeads(false);
lsRemoteCommand.setTags(true);
lsRemoteCommand.setRemote(repoUri.toString());
lsRemoteCommand.setCredentialsProvider(new UsernamePasswordCredentialsProvider("", ""));
Collection<Ref> tags = lsRemoteCommand.call();
for (Ref ref : tags) {
if (ref.getName().startsWith("refs/tags/")) {
System.out.println(ref.getName().substring("refs/tags/".length()));
}
}
}
通过项目路径
public static void main(String[] args) {
String repoPath = "E:\\2023\\Aproject\\11\\ihs\\";
try {
CodeSource codeSource = JarVersionHistory.class.getProtectionDomain().getCodeSource();
File jarFile = new File(codeSource.getLocation().toURI().getPath());
String projectRootPath = jarFile.getParentFile().getAbsolutePath() + File.separator + projectName;*
RepositoryBuilder builder = new RepositoryBuilder().findGitDir(new File(repoPath)).readEnvironment();
try (Repository repository = builder.build()) {
Git git = new Git(repository);
ListTagCommand tagCommand = git.tagList();
for (Ref ref : tagCommand.call()) {
String tagName = ref.getName().replace("refs/tags/", "");
System.out.println("Tag: " + tagName);
}
}
} catch (IOException | GitAPIException e) {
e.printStackTrace();
}
}