2011-01-19 24 views
1

我有一個Maven Mojo插件,詢問SCM生成報告。它收集的意見,作者和日期項罰款。我現在需要實際的提交ID。因此,考慮到以下日誌語句...如何從Maven SCM抽象獲得Git更改集ID

commit 0559a4f75eaabb978cd880ae921ea7737b974580 
Author: John Smith <[email protected]> 
Date: Tue Jan 18 13:08:57 2011 -0500 

    Fixed port numbers for JMX 

我想提取0559a4f75eaabb978cd880ae921ea7737b974580

似乎有不被執行此操作的明顯的方式。任何幫助,將不勝感激。以下是我首先獲取ChangeSet的方法。

SimpleDateFormat localFormat = new SimpleDateFormat(userDateFormat); 
ScmRepository repository = getScmRepository(); 
ScmProvider provider = getScmManager().getProviderByRepository(repository); 
ChangeLogScmResult result = provider.changeLog(repository, getFileSet(), this.parseDate(localFormat, this.startDate), this.parseDate(localFormat, this.endDate), 0, (ScmBranch) getScmVersion(scmVersionType, scmVersion), dateFormat); 
checkResult(result); 
ChangeLogSet changeLogSet = result.getChangeLog(); 
ChangeSet[] changeSets = (ChangeSet[]) changeLogSet.getChangeSets().toArray(new ChangeSet[changeLogSet.getChangeSets().size()]); 
GitChangeSet changeSet = (GitChangeSet)changeSets[0]; 
String gitID = ??????????????????????????????? 

這裏的GitChangeSet http://maven.apache.org/scm/apidocs/org/apache/maven/scm/provider/git/GitChangeSet.html,從中可以得到大多數我做剩下的東西的API文檔。

回答

0

較舊版本的maven-scm提供程序不具備此功能。升級到更新版本,ChangeSet上的「getRevision()」方法應該會很好。