UMLÈí¼þ¹¤³Ì×éÖ¯

¼¯³ÉÓë¹¹½¨Ö¸ÄÏ(Ò»)
×÷Õß ºúЭ¸Õ

1 ¸ÅÊö

Èí¼þ¿ª·¢µÄÄ¿±êÊǵõ½Âú×ãÐèÇóµÄ¿ÉÔËÐеĽ»¸¶¹¤¼þ£¬¼´Í¨³£Êǵõ½ÓÉÔ´ÂëµÈÖм乤¼þ±àÒë¡¢Á´½Ó²¢¼¯³É¶øÉú³ÉµÄÒ»¸ö½¨Ô죨build£©¡£È»¶ø¹¹½¨¼¯³ÉÈ´ÊÇÒ»Ïî¿´ËƼòµ¥Êµ¼ÊÉϳäÂúÁËÏÝÚåµÄ¹¤×÷£¬ÌرðÊÇÔÚÍŶӿª·¢µÄ³¡¾°Ï£¬½«Ç£Éæµ½½«²»Í¬³ÉÔ±¿ª·¢µÄÔ´ÂëµÈ¼¯³ÉÒ»Ì壬½â¾ö¸÷Àà³åÍ»ÓëÒÀÀµµÈ¸´ÔÓÇé¿ö£¬Õâ¸ö¹ý³Ì»¹Ö±½ÓÒÀÀµÓÚÈí¼þÅäÖùÜÀíÁ÷³ÌµÄÖ§³Ö¡£Ò»¸öºÏ¸ñµÄ¼¯³ÉÔ±ÐèÒªÕÆÎÕ¶àÏî֪ʶºÍ¼¼ÄÜ£¬±¾Îĵµ½«°ïÖú¼¯³ÉÔ±µÈÏà¹Ø½ÇÉ«Àí½âÒ»¸öÍêÕûµÄ¹¹½¨¼¯³É¹ý³Ì£¬Òýµ¼ËûÃÇѸËÙµØÕÆÎÕ±¾ÏîÄ¿µÄ¹¹½¨¹¤×÷¡£

±¾ÎĵµÖ÷ÒªÄÚÈÝ°üÀ¨£º

  • ÃèÊöÈçºÎ´´½¨Âú×ãÏîÄ¿¼¯³ÉÓë¹¹½¨»î¶¯µÄ¹¤×÷»·¾³
  • ¼òÒª½éÉܹ¹½¨¹¤¾ßµÄÏà¹Ø֪ʶ
  • ÃèÊöʵʩ¡ª¡µµ¥Ôª²âÊÔ¡ª¡µÌá½»¡ª¡µ¼¯³É¡ª¡µÃ°Ñ̲âÊԵĻù±¾Á÷³Ì<
  • ÉîÈë˵Ã÷×Ô¶¯»¯³ÖÐø¼¯³ÉµÄÁ÷³Ì
  • Ìṩ¶ÔµÚÈý·½¿ª·¢°ü¡¢ÏîÄ¿¹¹¼þµÈµÄÔ´Âë½á¹¹×éÖ¯ºÍ¼¯³ÉµÄÖ¸ÄÏ

2¡¢ÊõÓï˵Ã÷

  • ðÑ̲âÊÔ

    ÓÃÓÚ¿ìËÙÑéÖ¤Ò»¸öϵͳ¼¯³ÉµÄ¹¤×÷°æ±¾±»³É¹¦µØ¹¹½¨µÄÒ»×é²âÊÔ¡£ËüÃDZØÐëÊǵͳɱ¾µÄ²âÊÔ£¨±ÈÈç×Ô¶¯»¯µÄ²âÊÔ£©£¬Ä¿±êÊDZ£Ö¤Ò»¸öÏà¶ÔÎȶ¨µÄ¡¢ÖµµÃÕ¹¿ªºóÐøÖØÁ¿¼¶²âÊԵŤ×÷°æ±¾±»·¢²¼¸ø²âÊÔԱʹÓá£

  • ³ÖÐø¼¯³É

    ÊǶÔÈÕ¹¹½¨µÄ½øÒ»²½À©Õ¹¡£ÔÚרÃŹ¤¾ßµÄÖ§³ÖÏ£¬Í¨¹ýʵʩ×Ô¶¯»¯µÄ¹¹½¨¡¢²âÊÔ£¬Ê¹µÃÏîÄ¿µÄÔ´Âë¿ÉÒÔÔÚרÓù¹½¨»úÉϳÖÐøµØ½øÐм¯³É¹¹½¨Óë²âÊÔ£¬¼´Ôڼȶ¨ÖÜÆÚ£¨¿ÉÒԶ̵½30Ã룩ÖУ¬ÐÂÌá½»µÄÔ´Â뽫±»×Ô¶¯µØ¼¯³É£¬Ïà¹ØÈËÔ±Ëæ¼´»ñµÃ±àÒëºÍ²âÊÔ½á¹û¡£

3 ½ÇÉ«ÓëÖ°Ôð

²ÎÓë¹¹½¨¼¯³É¹ý³ÌµÄ½ÇÉ«ÈçÏ£º

 

½ÇÉ«

Ïà¹ØÖ°ÔðÃèÊö

±¸×¢

¼¯³ÉÔ±

  • Öƶ¨¼¯³ÉÓë¹¹½¨¼Æ»®
  • ±àÖƼ¯³ÉµÄ×Ô¶¯»¯¹¹½¨½Å±¾
  • Ö¸µ¼»ò°ïÖúʵʩԱ±àÖÆ˽Óй¹¼þµÄ×Ô¶¯»¯¹¹½¨½Å±¾
  • Ö´Ðм¯³É£¬½â¾ö±àÒëÓëÁ´½Ó³åÍ»£¬µ÷ÊÔ¹¹½¨½Å±¾µ
  • ½¨Á¢¹¤×÷»ùÏß

 

ʵʩԱ

  • ±àÖÆ˽Óй¹¼þÃæÏò¼¯³ÉµÄ×Ô¶¯»¯¹¹½¨½Å±¾
  • Ìá½»¹¹¼þÔ´ÂëµÈÖм乤¼þ£¨delivery£©
  • ÖØÉ迪·¢»ùÏߣ¨rebase£©

 

ÅäÖùÜÀíÔ±

  • ÅäÖü¯³ÉÓù¤×÷ÊÓͼ£¨view£©
  • ·ÖÅä´æȡȨÏÞ

 

»·¾³¹¤³Ìʦ

  • Öƶ¨ÏîÄ¿×éµÄ¿ª·¢»·¾³ÅäÖ÷½°¸
  • ½¨Á¢ÏîÄ¿µÄ¿ª·¢¡¢¼¯³ÉÓë²âÊÔÈí¼þ»·¾³
  • ½â¾öÈí¼þ¿ª·¢»·¾³ºÍ¹¤¾ßʹÓÃÖгöÏÖµÄÎÊÌâ

4 ¼¯³É»·¾³

ΪÁ˽«Ô´ÂëµÈÖм乤¼þ±àÒë¡¢Á´½ÓÉú³ÉµÄÒ»¸ö½¨Ô죨build£©£¬±ØÐëʹÓÃÏàÓ¦µÄ±àÒ빤¾ß£»¶øʵÏÖ¹¹½¨µÄ×Ô¶¯»¯£¬ÔòÐèÒªÀàËÆmakeµÈ¹¹½¨¹¤¾ßµÄÖ§³Ö£»ÊµÊ©³ÖÐø¼¯³É»¹ÒÀÀµCruiseControlÕâÀàרÃŹ¤¾ß£»ÁíÍâÓÉÓÚ¼¯³Éͨ³£ÔÚÍŶÓЭͬµÄ»·¾³Ï¿ªÕ¹£¬Èí¼þÅäÖùÜÀí¹¤¾ß½«Ôڴ˼ä³äµ±ÖØÒª½ÇÉ«¡£

ÍƼöµÄ°²×°Ë³ÐòÊÇ£º¿Ë¡Ö÷»ú¡ª¡µ°²×°ÅäÖùÜÀí¹¤¾ß¿Í»§¶Ë¡ª¡µ½¨Á¢Óû§ÊÓͼ¡ª¡µ×¼±¸Óû§Ë½Óй¹½¨³¡Ëù¡ª¡µÅäÖñàÒë»·¾³¡ª¡µÅäÖù¹½¨»·¾³¡ª¡µÖ´Ðгõ´Î¹¹½¨

4.1 ¼¯³ÉÍøÂ粿Êð

4.2 ±àÒë»·¾³

4.2.1 msvc6

±¾ÏîÄ¿µÄÊ×ÒªIDEÓõÄÊÇMS Visual Studio 98£¬±àÒëÆ÷ÏàÓ¦µÄÓÃmsvc6¡£

ÏîÄ¿ÖÐʹÓÃÁËmsvc6µÄ»ù´¡¿âºÍmfc¿âµÄÈ«¼¯£¨°üÀ¨unicode²¿¼þ£¬ÔÚ°²×°Ê±×¢ÒâҪʹÓö¨ÖÆ·½Ê½À´Ñ¡Ôñ£©¡£

ΪÁËÕý³£Ê¹ÓÃmsvc6£¬×¢ÒâÕýÈ·ÉèÖÃÏàÓ¦µÄPathµÈ»·¾³±äÁ¿£¬ËäÈ»°²×°³ÌÐòÄÜ×Ô¶¯ÉèÖÃËüÃÇ£¬µ«Í¨¹ý¿Ë¡µÄ»úÆ÷¿ÉÄܶªÊ§¡£

»·¾³±äÁ¿Ê¾Àý£º

Path=C:\WINNT\system32;C:\WINNT;C:\Development_Tools\Building-Utils\apache-ant-1.6.0\bin;C:\Development_Tools\Microsoft Visual Studio\Common\Tools\WinNT;C:\Development_Tools\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Development_Tools\Microsoft Visual Studio\Common\Tools;C:\Development_Tools\Microsoft Visual Studio\VC98\bin; C:\Development_Tools\Microsoft Visual Studio\Common\MSDev98\bin

ÁíÍâ¿ÉÒÔÖ±½ÓÔËÐÐÏÂÁÐÅúÃüÁîÀ´×Ô¶¯ÉèÖ㨽ö¶Ô¿Ë¡µÄ»úÆ÷ÓÐЧ£©£º

D:\Development_Home\Tools.Configs\path.bat

4.2.2 bcc55

ΪÁËÖ§³ÖµÚÈý·½Ê¹ÓÃBorland IDE£¬ÐèÒªÅäÖÃBcc55±àÒëÆ÷¡£

4.3 ¹¹½¨¹¤¾ß

³£¼ûµÄ¹¹½¨¹¤¾ß£¬C/C++ÓÐMake£¬Bjam£¬cpptasks for Ant£»JavaÓÐAnt£¬C#ÓÐNAnt¡£¿¼Âǵ½Ant¾ß±¸Ê¹Ó÷½±ã¡¢¹¦ÄÜÈ«Ãæ¡¢XML¸ñʽ¿É¶ÁÐÔÇ¿¡¢ÈÝÒ×ÕÆÎÕµÈÓŵ㣬±¾ÏîÄ¿Ñ¡ÓÃAnt×÷ΪÊ×ÒªµÄ¹¹½¨¹¤¾ß¡£

µäÐ͹¹½¨¹¤¾ß»·¾³µÄÅäÖÃΪ£º

jsdk1.4.x¡ª¡ªJavaÔËÐл·¾³

apache-ant-1.6.0¡ª¡ªAnt¹¤¾ß

°²×°Â·¾¶Ê¾Àý£º

C:\Development_Tools\Building-Utils\apache-ant-1.6.0

cpptasks1.0beta¡ª¡ªÖ§³ÖAnt½øÐÐ C/C++¹¹½¨µÄÀ©Õ¹

°²×°Â·¾¶Ê¾Àý£º

C:\Development_Tools\Building-Utils\apache-ant-1.6.0\lib\ cpptasks.jar

ant-contrib-0.6¡ª¡ªÖ§³ÖAntʹÓÿØÖÆÂß¼­µÄÀ©Õ¹

°²×°Â·¾¶Ê¾Àý£º

C:\Development_Tools\Building-Utils\apache-ant-1.6.0\lib\ ant-contrib-0.6.jar

envset¡ª¡ªÏîÄ¿×é×ÔÐпª·¢µÄÒ»¸öWinNT»·¾³±äÁ¿ÉèÖÃС³ÌÐò

°²×°Â·¾¶Ê¾Àý£º

C:\Development_Tools\Building-Utils\apache-ant-1.6.0\bin\ envset.exe

×¢Ò⣺

ΪÁËÖ§³Öcpptasks £¬ant-contribµÄʹÓ㬱ØÐëÔÚAnt¹¹½¨½Å±¾ÖмÓÈëÒÔÏÂÉùÃ÷£º

<!-- task and type extension -->

<taskdef resource="cpptasks.tasks"/>

<typedef resource="cpptasks.types"/>

<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

4.4 ³ÖÐø¼¯³É¹¤¾ß

Ö÷Á÷µÄ³ÖÐø¼¯³É¹¤¾ßÓÐCruiseControl£¬ÌṩÁËJavaÓëdot.netÁ½¸ö°æ±¾¡£ÎÒÃÇͨ¹ý¶ÔJava°æ±¾½øÐÐÏàÓ¦ÅäÖã¬ÊµÏÖÁËC/C++ÏîÄ¿µÄ³ÖÐø¼¯³É¡£

ÔÚ¼¯³É·þÎñÆ÷Éϵݲװ·¾¶Ê¾Àý£º

C:\Development_Tools\Building-Utils\cruisecontrol-2.1.5

ΪÁËÖ§³ÖC/C++ÏîÄ¿£¬ÐèÒª¼ÓÈëcpptasks¡¢ant-contrib£¬¿ÉÒÔͨ¹ýÐÞ¸ÄCruiseControl.batÎļþÀ´ÊµÏÖ£¬Ê¾ÀýÈçÏ£º

set EXTLIBDIR=%ANT_HOME%\lib

%EXTLIBDIR%\ant-contrib-0.6.jar;%EXTLIBDIR%\cpptasks.jar;

4.5 Èí¼þÅäÖùÜÀí¿Í»§¶Ë

±¾ÏîÄ¿Ñ¡ÓÃClearCase×÷ΪÈí¼þÅäÖùÜÀíµÄ¹¤¾ß¡£¿ª·¢¹¤×÷Õ¾¡¢²âÊÔ¹¤×÷Õ¾ºÍ¼¯³É·þÎñÆ÷¶¼½«°²×°ClearCase¿Í»§¶Ë£¬Æä°²×°ÅäÖòμûÆäËüClearCaseÏà¹ØÎĵµ¡£

ÊÓͼ·¾¶Ê¾Àý£º

D:\Shared_Views\PCHL_V1_Dev

4.6 Óû§Ë½Óй¹½¨³¡Ëù

¸÷¹¹½¨Ö÷»úÉÏÐèÒª´´½¨ÀàËÆD:\Development_Home\µÄĿ¼£¬×÷Ϊ¹¤×÷Óû§Ë½ÓеĿª·¢³¡Ëù£¬¿ª·¢ÈËÔ±¿ÉÒÔ½«\PCHL_Supports\Environments\Development\ Development_Home.zip£¨¿ÉÒÔ´ÓClearCaseµÄPCHL_WorkingÁ÷ÏÂÕÒµ½£©½âѹֱ½ÓÉú³É´ËĿ¼¼¯£¬ÆäÖÐD:\Development_Home\Building.Workspace×ÓĿ¼½«ÓÃÓÚ×Ô¶¯¹¹½¨¡£Development_Home.zip°üÄÚ»¹°üº¬CruiseControl³ÖÐø¼¯³ÉµÄÏà¹ØÅäÖÃÎļþ¡£

4.7 Ö÷»ú¿Ë¡

ΪÁËÌá¸ß¹¤×÷ЧÂÊ£¬ÏîÄ¿×éµÄ¿ª·¢¹¤×÷Õ¾¿ÉÒÔͨ¹ý¿Ë¡µÄ·½Ê½½øÐпìËÙ°²×°¡£»·¾³¹¤³ÌʦÕë¶ÔÏîÄ¿×éÈÕ³£¿ª·¢¡¢¹ÜÀí¡¢Ð­Í¬µÈ¹¤×÷ÐèÒª£¬ÖÆ×÷ÁËÍêÕûµÄϵͳÅÌ£¨CÖ÷·ÖÇø£©Ó³Ïñ£¬°üÀ¨¿ª·¢¹¤¾ß¡¢CASE¹¤¾ß¡¢ÆäËü³£Óù¤¾ßµÈ£¬ÉÏÊö¹¹½¨Óù¤¾ßÈí¼þ¾ù°üº¬ÔÚÄÚ¡£

Ó³ÏñÓÐWindows2000ProfessionalÓëWindows2000ServerÁ½¸ö°æ±¾£¬Ô´Â·¾¶Ê¾Àý£º

\\back1-svr\ghost_imgs\w2ksrv_x\w2ksrv.GHO

ʹÓÃÕß¿ÉÒÔÓÃÖ§³ÖÍøÂçÁ¬½ÓµÄÒýµ¼CDÆô¶¯ÏµÍ³£¬Ö´ÐÐghost£¬È»ºó½øÐпË¡¡£

5¹¹½¨»ù´¡ÖªÊ¶

5.1 Ant¹¹½¨½Å±¾

×Ô¶¯»¯¹¹½¨µÄºËÐÄÊDZí´ï¹¹¼þ¼äÒÀÀµ¹ØϵºÍ¹¹½¨²½ÖèµÄ½Å±¾£¬Make¹¤¾ßʹÓÃmakefile£¬¶øAntʹÓÃÁË»ùÓÚXML¸ñʽµÄȱʡÎļþÃûΪBuild.XmlµÄÅäÖÃÎļþ¡£

5.1.1 AntÏîÄ¿ÅäÖÃÎļþ

AntÅäÖÃÎļþÃèÊöÁËÒ»¸ö¹¹½¨ÏîÄ¿£¨project£©£¬ËüÓÉһЩÊôÐÔ¶¨Ò壨property£©ºÍÒ»¸öÄ¿±êÊ÷£¨target tree£©×é³É£»Ä¿±ê´ú±íÁËÒ»¸öÆÚÍûµÄ¹¹½¨½á¹û£¨ÀýÈçÉú³ÉÒ»¸öÁ´½ÓºÃµÄ¿ÉÖ´ÐÐÎļþ£©£¬²¢±íÊöÁËÆäÒÀÀµµÄÆäËüÄ¿±ê£¬³£¼ûµÄ¹¹½¨Ä¿±êÓгõʼ»¯£¨Init£©¡¢±àÒ루Compile£©¡¢µ¥Ôª²âÊÔ£¨Test£©¡¢°²×°£¨Install£©¡¢Çå³ý£¨Clean£©µÈ£»Ã¿¸öÄ¿±ê°üº¬ÁËʵÏÖËü¶ø½«ÒªÖ´ÐеÄÈÎÎñ£¨task£©£¬AntÖ§³ÖµÄÈÎÎñÖÖÀà·Ç³£·á¸»£¬ÀýÈçÔ´Âë±àÒë¡¢Îļþ¿½±´¡¢Ö´ÐÐÃüÁîÐвÙ×÷µÈ¡£Ant»¹ÌṩһÖַdz£ÖØÒªµÄÈÎÎñ¾ÍÊÇÖ´ÐÐÆäËüµÄÏîÄ¿ÅäÖÃÎļþ£¬Ê¹µÃ¶à¸ö¹¹½¨ÏîÄ¿µÄÅú´¦Àí³ÉΪ¿ÉÄÜ¡£

5.1.2 AntÅäÖÃÎļþʾÀý

ÏÂÃæÊÇÒ»¸öAntÏîÄ¿µÄÅäÖÃÎļþʾÀý£º

<?xml version="1.0"?>

<project name="Improve-Install" default="InstallAll" basedir=".">

<description >

Build file for all Improve library project

</description>

<!-- task and type extension -->

<taskdef resource="cpptasks.tasks"/>

<typedef resource="cpptasks.types"/>

<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

<!-- Properties -->

<property environment="sys_env"/>

<property name="proj.root" location="..\."/>

<target name="-Init">

<condition property="cc" value="${mswin32-compiler}">

<os family="windows"/>

</condition>

<condition property="cc" value="gcc">

<os family="unix"/>

</condition>

<echo message="${ant.project.name}: Init Complete"/>

</target>

<target name="Clean" depends="-Init"

description="Clean the temporal building space">

<!-- Delete all files in temporal build space -->

<delete includeEmptyDirs="true" >

<fileset dir="${tgt.bin}" includes="objs/*, objs_d/*" defaultexcludes="false"/>

</delete>

<delete includeEmptyDirs="true" >

<fileset dir="${tgt.lib}" includes="objs/*, objs_d" defaultexcludes="false"/>

</delete>

<echo message="${ant.project.name}: Clean buildspace Complete"/>

</target>

<target name="AutoBuild" depends="-Init, -Prep" description="AutoBuild all source to get bin out">

<mkdir dir="${tgt.lib}\objs_d"/>

<mkdir dir="${tgt.lib}\objs"/>

<if>

<equals arg1="${cc}" arg2="msvc"/>

<then>

<cc name="${cc}" objdir="${tgt.lib}\objs_d" outfile="${tgt.lib}\improve_debug" outtype="static"

exceptions="true" multithreaded="true" runtime="dynamic" debug="true">

<compiler extends="${cc}-compiler">

<includepath path="${tgt.interface}"/>

<includepath path="${getenv.BOOST_ROOT}\include"/>

<includepath path="${getenv.CPPUNIT_ROOT}\include"/>

<defineset >

<define name="WIN32"/>

<define name="_WINDOWS"/>

</defineset>

<compilerarg value="/W3"/>

<compilerarg value="/GR"/>

<compilerarg value="/O2"/>

</compiler>

<linker extends="${cc}-linker">

<linkerarg value="/machine:I386"/>

<!--fileset dir="${getenv.LIBS_ROOT}\lib" includes="3d_party.*"/-->

</linker>

<fileset dir="${tgt.src}">

<include name="**/*.cpp"/>

<include name="**/*.c"/>

<exclude name="exception_ex.*"/>

</fileset>

</cc>

<echo message="${ant.project.name}: AutoBuild Complete"/>

</target>

<target name="Test" depends="-Init, TestBuild" description="Perform acception testing">

<exec executable="test_main_debug.exe" dir="${tgt.bin}"

failonerror="true" vmlauncher="false" os="Windows 2000">

<env key="Path" path="${getenv.Path};${getenv.CPPUNIT_ROOT}\lib;${getenv.BOOST_ROOT}\lib"/>

</exec>

<echo message="test_main.exe Debug Version Testing Pass"/>

<exec executable="test_main.exe" dir="${tgt.bin}"

failonerror="true" vmlauncher="false" os="Windows 2000">

<env key="Path" path="${getenv.Path};${getenv.CPPUNIT_ROOT}\lib;${getenv.BOOST_ROOT}\lib"/>

</exec>

<echo message="test_main.exe Release Version Testing Pass"/>

<echo message="${ant.project.name}: Testing Complete"/>

</target>

<target name="InstallAll"

depends="CleanAll, AutoBuild, Install, Test"

description="Make a clean (re)install and test">

<echo message="${ant.project.name}: Install/Reinstall Complete"/>

</target>

</project>

ÔÚ´ËAntÅäÖÃÎļþÖж¨ÒåÁËÏîÄ¿½«ÒýÓõÄһЩproperty£¬ÀýÈç»·¾³±äÁ¿¡¢ÏîÄ¿µÄ¸ùĿ¼·¾¶¡¢Ö¸¶¨µÄ±àÒëÆ÷µÈ£»ÏîÄ¿µÄȱʡ¹¹½¨Ä¿±êΪInstallAll£¬Ëüͨ¹ýÒÀÀµ¶¨Ò壬ʹµÃ³õʼ»¯£¨Init£©¡¢Çå³ý£¨CleanAll£©¡¢±àÒ루AutoBuild£©¡¢°²×°£¨Install£©¡¢²âÊÔ£¨Test£©µÈÄ¿±êÒÀ´ÎÖ´ÐУ»AutoBuildÄ¿±êÖ´ÐеÄccÈÎÎñ£¬½«¶ÔÔ´Âë½øÐбàÒ룬²¢Í¨¹ýincludepathÉèÖÃÁ˱àÒëÍ·ÎļþµÄ²éÕÒ·¾¶£¬Í¨¹ýlinker¶ÎÖ¸¶¨ÁËÐèÁ´½ÓµÄ¿â3d_party.lib¡£

±¾ÏîÄ¿Öи÷AntÅäÖÃÎļþµÄ¾ßÌåÅäÖúÍʹÓã¬Çë²Î¼ûAntÓû§ÊÖ²áµÈ²Î¿¼×ÊÁÏ£¬ºÍÔĶÁAntÅäÖÃÎļþ±¾ÉíÄÚÈÝ¡£

5.1.3 AntÖ´ÐÐʾÀý

AntÔÚÃüÁîÐÐÏÂÖ´ÐеÄʾÀý£º

5.2 CruiseControlÖ´Ðнű¾

³ÖÐø¼¯³ÉµÄ¹ý³ÌÓÉȱʡÎļþÃûΪconfig.xmlµÄÅäÖÃÎļþÀ´¶¨Òå¡£config.xmlÖÐÈ·¶¨Á˹¹½¨ÖÜÆÚ¼ä¸ô£¬ÒÔ¼°¼ì²âÅäÖÿâ״̬¡¢µ÷ÓÃAntÅäÖÃÎļþ½øÐй¹½¨µÈ²½ÖèµÄÄÚÈÝ¡£ÎªÁËʵÏÖ×Ô¶¯»¯³ÖÐø¼¯³É£¬»¹Ó¦±àÖÆAnt·â×°£¨wrapper£©ÅäÖÃÎļþ£¬ËüÔÚµ÷ÓÃԭʼAnt¹¹½¨½Å±¾£¨Ï൱ÓÚ½«Ô­Ê¼Ant½Å±¾·â×°ÔÚÄÚ£©µÄ»ù´¡ÉÏ£¬Ìí¼ÓÓÃÓÚ³ÖÐø¼¯³ÉµÄ¸üÐÂÔ´ÂëĿ¼µÈ²½Öè¡£

5.2.1 CruiseControlÏîÄ¿ÅäÖÃÎļþ

CruiseControlÏîÄ¿ÅäÖÃÎļþÃèÊöÁËÒ»¸ö¼¯³ÉÏîÄ¿£¨project£©£¬ËüÓÉÒýµ¼¶Î£¨bootstrappers£©¡¢¼ì²âÐ޸ļ¯¶Î£¨modificationset£©¡¢µ÷¶È¶Î£¨schedule£©¡¢ÈÕÖ¾¼Ç¼¶Î£¨log£©¡¢·¢²¼¶Î£¨publishers£©¡¢²å¼þ¶¨Òå¶Î£¨plugin£©×é³É¡£Òýµ¼¶ÎÓÃÀ´ÉèÖóÖÐø¼¯³ÉÁ÷³Ì¿ªÊ¼Ö´ÐÐʱÏà¹ØµÄ³õʼ»¯ÈÎÎñ£¬ÀýÈç¸üÐÂÔ´Âë¹ÜÀíÖеÄÖ¸¶¨Îļþ£»¼ì²âÐ޸ļ¯¶ÎÔòÖ¸¶¨ÁËÐèÒª¼ì²âµÄÒÑÖÃÓÚÅäÖùÜÀíϵÄÄ¿±êÔ´Â룬ÒÔ±ãÔÚ¼ì²âµ½ÓÐÔ´Âë¸üкóÆô¶¯ºóÐøµÄ¹¹½¨²½Ö裬ÀýÈçclearcaseÖеÄij·Ö֧ϡ¢Ä³ÊÓͼÖеÄÒ»¸öĿ¼£»µ÷¶È¶ÎÊdzÖÐø¼¯³ÉÁ÷³ÌµÄºËÐIJ¿·Ö£¬ÔÚ´ËÈ·¶¨Á˹¹½¨ÖÜÆÚ¼ä¸ô¡¢ÐÝÃßʱ¶Î£¬²¢ÃèÊöÁ˹¹½¨µÄÄ¿±ê£¬Ä¿±êͨ³£Ö¸ÏòÒ»¸öAnt·â×°ÅäÖÃÎļþ£»ÈÕÖ¾¼Ç¼¶ÎÖ¸¶¨Á˽«Ïò·¢²¼²½ÖèÌṩÊý¾ÝµÄ¸÷ÏîÈÕÖ¾¼Ç¼£»·¢²¼¶ÎÔòÉèÖÃÁ˶Թ¹½¨½á¹û½øÐз¢²¼ºÍ֪ͨµÄÄÚÈÝ£¬ÀýÈçÖ¸¶¨±¨¸æµÄE-mailµØÖ·µÈ£»²å¼þ¶¨Òå¶ÎÓÃÀ´Ö¸¶¨CruiseControl¸÷ÏÄÜʵÏÖ¶ÔÓ¦µÄ²å¼þÀà¡£

5.2.2 CruiseControlÅäÖÃÎļþʾÀý

ÏÂÃæÊÇÒ»¸öCruiseControlÏîÄ¿µÄÅäÖÃÎļþʾÀý£º

<?xml version="1.0"?>

<cruisecontrol>

<project name="peripheral_api_project">

<bootstrappers>

<currentbuildstatusbootstrapper file="currentbuild.txt"/>

</bootstrappers>

<modificationset quietperiod="30">

<clearcase branch="PCHL_V1_Dev" recursive="true"

viewpath="d:/Shared_Views/PCHL_V1_Dev/PCHL_Components/protocols_api/peripheral"/>

</modificationset>

<schedule interval="60">

<ant buildfile="proj.xml" target="cleanbuild" multiple="5"/>

<ant buildfile="proj.xml" target="masterbuild" multiple="1"/>

<pause starttime="1900" endtime="2359"/>

<pause starttime="0000" endtime="0659"/>

<pause day="saturday" starttime="0000" endtime="2359"/>

<pause day="sunday" starttime="0000" endtime="2359"/>

</schedule>

<log dir="logs/peripheral_api_project" encoding="ISO-8859-1">

<merge dir="d:/Shared_Views/PCHL_V1_Dev/PCHL_Components/protocols_api/peripheral/bin/test-results"/>

</log>

<publishers>

<currentbuildstatuspublisher file="currentbuild.txt"/>

<email mailhost="sysway.com" returnaddress="xghu@sysway.com" defaultsuffix=""

buildresultsurl="http://pchl1-tstn:8080/cruisecontrol/buildresults" logdir="logs/peripheral_api_project"

css="C:/Development_Tools/Building-Utils/cruisecontrol-2.1.5/reporting/jsp/css/cruisecontrol.css"

xsldir="C:/Development_Tools/Building-Utils/cruisecontrol-2.1.5/reporting/jsp/xsl">

<always address="xghu@sysway.com"/>

<failure address="xghu@sysway.com"/>

<map alias="huxg" address="xghu@sysway.com"/>

</email>

</publishers>

<plugin name="currentbuildstatusbootstrapper"

classname="net.sourceforge.cruisecontrol.bootstrappers.CurrentBuildStatusBootstrapper"/>

<plugin name="clearcasebootstrapper"

classname="net.sourceforge.cruisecontrol.bootstrappers.ClearCaseBootstrapper"/>

<plugin name="clearcase" classname="net.sourceforge.cruisecontrol.sourcecontrols.ClearCase"/>

<plugin name="ant"

classname="net.sourceforge.cruisecontrol.builders.AntBuilder"/>

<plugin name="pause"

classname="net.sourceforge.cruisecontrol.PauseBuilder"/>

<plugin name="email"

classname="net.sourceforge.cruisecontrol.publishers.HTMLEmailPublisher"/>

<plugin name="currentbuildstatuspublisher"

classname="net.sourceforge.cruisecontrol.publishers.CurrentBuildStatusPublisher"/>

<plugin name="labelincrementer"

classname="net.sourceforge.cruisecontrol.labelincrementers.DefaultLabelIncrementer"/>

</project>

</cruisecontrol>

5.2.3 Ant·â×°£¨wrapper£©ÅäÖÃÎļþʾÀý

ÏÂÃæÊÇÒ»¸öAnt·â×°£¨wrapper£©ÅäÖÃÎļþʾÀý£º

<?xml version="1.0"?>

<project name="peripheral_api_cc" default="masterbuild">

<property file="proj.properties"></property>

<property name="proj.dir" location="${proj.path}"/>

<target name="update" description="Update packages from ClearCase">

<ccupdate log="clearcase.log" overwrite="true" viewpath="${proj.dir}"/>

</target>

<target name="clean" description="Clean all build products">

<ant dir="${proj.dir}/build" target="CleanAll"/>

</target>

<target name="build">

<ant dir="${proj.dir}/build" target="AutoBuild"/>

</target>

<target name="rununittests" depends="build">

<ant dir="${proj.dir}/build" target="Test"/>

</target>

<target name="smoketest" depends="build">

</target>

<target name="masterbuild" depends="update,rununittests,smoketest"

description="Cruise control master build"/>

<target name="cleanbuild" depends="clean,masterbuild"

description="Cruise control clean build"/>

</project>

×¢Òâ±¾AntÏîÄ¿ÅäÖÃÎļþÖÐÖ÷ÒªÌí¼ÓÁËupdateÄ¿±ê£¬ÓÃÀ´½«proj.propertiesÎļþÖж¨ÒåµÄ proj.path=d:/Shared_Views/PCHL_V1_Dev/PCHL_Components/protocols_api/peripheralĿ¼ÏµÄËùÓÐÄÚÈݽøÐиüС£

5.2.4 cruisecontrolÖ´ÐÐʾÀý

cruisecontrolÔÚÃüÁîÐÐÏÂÖ´ÐеÄʾÀý£º

 

¡¡

°æȨËùÓУºUMLÈí¼þ¹¤³Ì×éÖ¯