2011-12-01 57 views
3

我试图开发一个巡航控制步骤,它将处理数据库迁移脚本并应用它们。从Ant任务中获取对修改列表的引用

我想能够从SourceControl中获得修改列表(查看是否需要应用任何新的数据库更改)。

任何想法,我可以如何实现这一点?我知道这些信息被写入日志xml中,但我想知道是否有一种简单的机制可以从Ant构建器中获得对此的引用。

我已经研究过编写一个自定义CC Listener或Builder插件,但都没有在接口中提供这个。

回答

2

我们有“SVN更新”为在Ant构建的步骤之一,后来我们用输出重定向到文件(Ant属性也可使用):

<exec executable="svn" dir="."> 
    <arg line="up"/> 
    <redirector output="svnup.log" alwayslog="true" append="true"/> 
</exec> 
<property name="svnup.log" value="svnup.log"/> 

此建立文件名为“svnup .log“,并输出”svn up“命令。

+0

我想挖掘并利用巡航控制版本的修改集部分的结果。你的解决方案涉及到另外的svn调用,这也会起作用。 –

0

我想我会尝试编写自定义插件实现出版商

@Override 
public void publish(Element cruisecontrolLog) throws CruiseControlException {  XMLLogHelper xmlHelper = new XMLLogHelper(cruisecontrolLog); 
    Set<Modification> modifications = xmlHelper.getModifications(); 
    for (Modification modification : modifications) { 
    handleModification(modification);   
    } 
} 

或者另一个想法是使用时间戳标记在SSCM Ant任务与提供给Ant构建的cclastbuildtimestamp物业组合生成自上次构建以来更改的文件列表。