译自:http://wiki.hudson-ci.org/display/HUDSON/Fingerprint
当您的Hudson中存在相互依赖的项目时。它经常导致您在跟踪项目的这个版本的依赖另外项目的某一个版本时变得很困难。所以Hudson支持“文件指纹识别”以简化此步骤。
例如,假设您有个TOP项目依赖于MIDDLE项目,而它又依赖于BOTTOM 项目。现在您正在修改BOTTOM 项目。TOP(项目)的团队向您报告他们使用bottom.jar时产生一个网络错误。而您认为您已经在BOTTOM #32 项目里修正了它。Hudson可以告诉你当MIDDLE和 TOP构建时正在使用(或未使用)您的bottom.jar #32。
如何设置?
为了完成这项作业,所有相关的项目都需要进行配置,用来记录该jar文件的指纹(在这个例子中,我使用了bottom.jar 。)
例如,如果你仅仅想追踪BOTTOM构建被哪次TOP构建所引用,那么你就配置TOP和BOTTOM以记录bottom.jar。如果您也想知道MIDDLE构建对应哪个bottom.jar 的话,那么也要把MIDDLE配置进来。
由于记录指纹是一个很简洁的操作,最简单的做法就是仅仅从下述的所有指纹中遍历记录:
- 您项目产生的jar文件。
- 您项目依赖的jar文件。
磁盘空间使用惯例下更多的是搜索受指纹影响的文件数量,反对根据文件的大小或者他们曾使用过的构建数量进行搜索。所以,除非您有足够的磁盘空间,您不应该使用“*/”标识指纹。
它是如何工作的?
一个文件的指纹其实是一个简单的MD5总和检查码。Hudson维持一个md5sum数据库,Hudson将会为某个工程的某次构建记录一个md5sum。该数据库在任意一次构建运行和文件被指纹化时都会更新。
为了避免过多的使用磁盘空间,Hudson不存储实际的文件。相反,它仅仅存储md5sum和他们的使用情况。这些文件能在$HUDSON_HOME/fingerprints目录下看到。
我如何使用它?
以下是一些受益于这一功能的典型案例:
您正在开发BOTTOM 项目,然后你想知道谁在某次构建中正在使用BOTTOM #13。
- 跳转至BOTTOM #13构建页面。
- 在构建构件里点击bottom.jar的“fingeprint”图标。
- 您将会看到所有正使用它的项目和构建。
如果您正在开发TOP项目,然后您想知道您的TOP #10在哪个构建使用了bottom.jar 和 middle.jar。
- 跳转到TOP #10构建页面。
- 点击"see fingerprints"。
- 您将会在TOP #10看到所有指纹化的文件,以及告知您它们来自何处。
您有编译一个jar包的TOP 项目。您也有在运行完TOP项目后的TOP-TEST项目,以便在最新的TOP项目基础上进行广泛的集成测试。譬如,您想在TOP #7上知道测试结果。
- 跳转至TOP #7 构建页面。
- 在构建构件的top.jar上点击"fingeprint"图标。
- 您将会看到所有正使用它的TOP-TEST 构建。
- 点击它,您会找到合适的TOP-TEST构建页面,然后该页面将显示给您测试报告。
- 如果没有TOP-TEST构建显示,那么这意味着TOP-TEST构建并没有运行在TOP #7上。也许是跳过了TOP #7(可能会发生这样的情况,如果在很短的时间内产生了多个TOP构建),或者一个最新的TOP-TEST构建正在运行中。