我尝试开发巡航控制步骤,该步骤将处理数据库迁移脚本并应用它们。
我希望能够从SourceControl获取修改列表(以查看是否需要应用任何新的数据库更改)。
我是如何实现这一目标的?我知道这些信息被写入log xml但是我想知道是否有一个简单的机制来从Ant构建器获取对它的引用。
我已经研究过编写自定义CC Listener或Builder插件,但是在接口中都没有提供。
答案 0 :(得分:2)
我们将“svn update”作为ant builder中的一个步骤,稍后我们使用重定向到文件的输出(也可以使用ant属性):
<exec executable="svn" dir=".">
<arg line="up"/>
<redirector output="svnup.log" alwayslog="true" append="true"/>
</exec>
<property name="svnup.log" value="svnup.log"/>
这将在build文件夹中创建名为“svnup.log”的文件,并输出“svn up”命令。
答案 1 :(得分:0)
我想我会尝试编写一个实现Publisher
的自定义插件@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任务中的timestamp标志与提供给ant构建器的cclastbuildtimestamp属性相结合,以生成自上次构建以来更改的文件列表。