³ÖÐø¼¯³ÉÊÇÒ»ÖÖÈí¼þ¿ª·¢Êµ¼ù£¬¶ÔÓÚÌá¸ßÈí¼þ¿ª·¢Ð§Âʲ¢±£ÕÏÈí¼þ¿ª·¢ÖÊÁ¿ÌṩÁËÀíÂÛ»ù´¡¡£Jenkins
ÊÇÒ»¸ö¿ªÔ´Èí¼þÏîÄ¿£¬Ö¼ÔÚÌṩһ¸ö¿ª·ÅÒ×ÓõÄÈí¼þƽ̨£¬Ê¹³ÖÐø¼¯³É±ä³É¿ÉÄÜ¡£±¾ÎÄÕýÊÇ´Ó³ÖÐø¼¯³ÉµÄ»ù±¾¸ÅÄîÈëÊÖ£¬Í¨¹ý¾ßÌåʵÀý£¬½éÉÜÁËÈçºÎ»ùÓÚ
Jenkins ¿ìËٴ³ÖÐø¼¯³É»·¾³¡£
³ÖÐø¼¯³É¸ÅÊö
ʲôÊdzÖÐø¼¯³É
Ëæ×ÅÈí¼þ¿ª·¢¸´ÔӶȵIJ»¶ÏÌá¸ß£¬ÍŶӿª·¢³ÉÔ±¼äÈçºÎ¸üºÃµØÐͬ¹¤×÷ÒÔÈ·±£Èí¼þ¿ª·¢µÄÖÊÁ¿ÒѾÂýÂý³ÉΪ¿ª·¢¹ý³ÌÖв»¿É»Ø±ÜµÄÎÊÌâ¡£ÓÈÆäÊǽüЩÄêÀ´£¬Ãô½Ý£¨Agile£©
ÔÚÈí¼þ¹¤³ÌÁìÓòÔ½À´Ô½ºì»ð£¬ÈçºÎÄÜÔÙ²»¶Ï±ä»¯µÄÐèÇóÖпìËÙÊÊÓ¦ºÍ±£Ö¤Èí¼þµÄÖÊÁ¿Ò²ÏÔµÃÓÈÆäµÄÖØÒª¡£
³ÖÐø¼¯³ÉÕýÊÇÕë¶ÔÕâÒ»ÀàÎÊÌâµÄÒ»ÖÖÈí¼þ¿ª·¢Êµ¼ù¡£Ëü³«µ¼ÍŶӿª·¢³ÉÔ±±ØÐë¾³£¼¯³ÉËûÃǵŤ×÷£¬ÉõÖÁÿÌì¶¼¿ÉÄÜ·¢Éú¶à´Î¼¯³É¡£¶øÃ¿´ÎµÄ¼¯³É¶¼ÊÇͨ¹ý×Ô¶¯»¯µÄ¹¹½¨À´ÑéÖ¤£¬°üÀ¨×Ô¶¯±àÒë¡¢·¢²¼ºÍ²âÊÔ£¬´Ó¶ø¾¡¿ìµØ·¢ÏÖ¼¯³É´íÎó£¬ÈÃÍŶÓÄܹ»¸ü¿ìµÄ¿ª·¢ÄÚ¾ÛµÄÈí¼þ¡£
³ÖÐø¼¯³ÉµÄºËÐļÛÖµÔÚÓÚ£º
³ÖÐø¼¯³ÉÖеÄÈκÎÒ»¸ö»·½Ú¶¼ÊÇ×Ô¶¯Íê³ÉµÄ£¬ÎÞÐèÌ«¶àµÄÈ˹¤¸ÉÔ¤£¬ÓÐÀûÓÚ¼õÉÙÖØ¸´¹ý³ÌÒÔ½Úʡʱ¼ä¡¢·ÑÓú͹¤×÷Á¿£»
³ÖÐø¼¯³É±£ÕÏÁËÿ¸öʱ¼äµãÉÏÍŶӳÉÔ±Ìá½»µÄ´úÂëÊÇÄܳɹ¦¼¯³ÉµÄ¡£»»ÑÔÖ®£¬ÈκÎʱ¼äµã¶¼ÄܵÚһʱ¼ä·¢ÏÖÈí¼þµÄ¼¯³ÉÎÊÌ⣬ʹÈÎÒâʱ¼ä·¢²¼¿É²¿ÊðµÄÈí¼þ³ÉΪÁË¿ÉÄÜ£»
³ÖÐø¼¯³É»¹ÄÜÀûÓÚÈí¼þ±¾ÉíµÄ·¢Õ¹Ç÷ÊÆ£¬ÕâµãÔÚÐèÇó²»Ã÷È·»òÊÇÆµ·±ÐÔ±ä¸üµÄÇé¾°ÖÐÓÈÆäÖØÒª£¬³ÖÐø¼¯³ÉµÄÖÊÁ¿ÄܰïÖúÍŶӽøÐÐÓÐЧ¾ö²ß£¬Í¬Ê±½¨Á¢ÍŶӶԿª·¢²úÆ·µÄÐÅÐÄ¡£
³ÖÐø¼¯³ÉµÄÔÔò
Òµ½çÆÕ±éÈÏͬµÄ³ÖÐø¼¯³ÉµÄÔÔò°üÀ¨£º
1£©ÐèÒª°æ±¾¿ØÖÆÈí¼þ±£ÕÏÍŶӳÉÔ±Ìá½»µÄ´úÂë²»»áµ¼Ö¼¯³Éʧ°Ü¡£³£Óõİ汾¿ØÖÆÈí¼þÓÐ
IBM Rational ClearCase¡¢CVS¡¢Subversion µÈ£»
2£©¿ª·¢ÈËÔ±±ØÐ뼰ʱÏò°æ±¾¿ØÖÆ¿âÖÐÌá½»´úÂ룬Ҳ±ØÐë¾³£ÐԵشӰ汾¿ØÖÆ¿âÖиüдúÂëµ½±¾µØ£»
3£©ÐèÒªÓÐרÃŵɷþÎñÆ÷À´Ö´Ðм¯³É¹¹½¨¡£¸ù¾ÝÏîÄ¿µÄ¾ßÌåʵ¼Ê£¬¼¯³É¹¹½¨¿ÉÒÔ±»Èí¼þµÄÐÞ¸ÄÀ´Ö±½Ó´¥·¢£¬Ò²¿ÉÒÔ¶¨Ê±Æô¶¯£¬Èçÿ°ë¸öСʱ¹¹½¨Ò»´Î£»
4£©±ØÐë±£Ö¤¹¹½¨µÄ³É¹¦¡£Èç¹û¹¹½¨Ê§°Ü£¬ÐÞ¸´¹¹½¨¹ý³ÌÖеĴíÎóÊÇÓÅÏȼ¶×î¸ßµÄ¹¤×÷¡£Ò»µ©ÐÞ¸´£¬ÐèÒªÊÖ¶¯Æô¶¯Ò»´Î¹¹½¨¡£
³ÖÐø¼¯³ÉϵͳµÄ×é³É
Óɴ˿ɼû£¬Ò»¸öÍêÕûµÄ¹¹½¨ÏµÍ³±ØÐë°üÀ¨£º
Ò»¸ö×Ô¶¯¹¹½¨¹ý³Ì£¬°üÀ¨×Ô¶¯±àÒë¡¢·Ö·¢¡¢²¿ÊðºÍ²âÊԵȡ£
Ò»¸ö´úÂë´æ´¢¿â£¬¼´ÐèÒª°æ±¾¿ØÖÆÈí¼þÀ´±£ÕÏ´úÂëµÄ¿Éά»¤ÐÔ£¬Í¬Ê±×÷Ϊ¹¹½¨¹ý³ÌµÄËØ²Ä¿â¡£
Ò»¸ö³ÖÐø¼¯³É·þÎñÆ÷¡£±¾ÎÄÖнéÉÜµÄ Jenkins ¾ÍÊÇÒ»¸öÅäÖüòµ¥ºÍʹÓ÷½±ãµÄ³ÖÐø¼¯³É·þÎñÆ÷¡£
Jenkins ¼ò½é
Jenkins ÊÇÒ»¸ö¿ªÔ´ÏîÄ¿£¬ÌṩÁËÒ»ÖÖÒ×ÓÚʹÓõijÖÐø¼¯³Éϵͳ£¬Ê¹¿ª·¢Õß´Ó·±ÔӵÉÖнâÍѳöÀ´£¬×¨×¢ÓÚ¸üÎªÖØÒªµÄÒµÎñÂ߼ʵÏÖÉÏ¡£Í¬Ê±
Jenkins ÄÜʵʩ¼à¿Ø¼¯³ÉÖдæÔڵĴíÎó£¬ÌṩÏêϸµÄÈÕÖ¾ÎļþºÍÌáÐѹ¦ÄÜ£¬»¹ÄÜÓÃͼ±íµÄÐÎʽÐÎÏóµØÕ¹Ê¾ÏîÄ¿¹¹½¨µÄÇ÷ÊÆºÍÎȶ¨ÐÔ¡£ÏÂÃæ½«½éÉÜ
Jenkins µÄ»ù±¾¹¦ÄÜ¡£
Jenkins µÄ°²×°·Ç³£¼òµ¥£¬Ö»ÐèÒª´Ó Jenkins µÄÖ÷Ò³ÉÏÏÂÔØ×îеÄ
jenkins.war ÎļþÈ»ºóÔËÐÐ java -jar jenkins.war¡£Í¬Ê±£¬»¹¿ÉÒÔµã»÷ Jenkins
Ò³ÃæÉ쵀 launch °´Å¥Íê³ÉÏÂÔØºÍÔËÐÐ Jenkins¡£

ͼ 1. Jenkins Launch °´Å¥
Æô¶¯ Jenkins ºó£¬»áÓÐÒ»¸öºǫ́½ø³ÌÔÚÃüÁîÐÐģʽÏÂÔËÐС£´ËʱÔÚä¯ÀÀÆ÷µØÖ·À¸Öдò¿ª
http://localhost:8080 ¾Í¿ÉÒÔ¿´µ½ Jenkins µÄÒ³ÃæÁË¡£Jenkins µÄ¿É¹óÖ®´¦ÔÚÓÚ¾ßÓзdz£¸ßµÄ¿ÉÓÃÐÔ£¬´ÓËüµÄ½çÃæÖÐÄܺÜÇáËɵØÍê³É¸÷ÖÖÅäÖ㬸ü¶àµÄÅäÖúÍʹÓÃÐÅÏ¢£¬¿ÉÒÔÔÚ
Jenkins µÄ¹Ù·½ÍøÕ¾Éϲéѯ¡£

ͼ 2. ÃüÁîÐÐģʽÏÂÔËÐÐ Jenkins

ͼ 3. Jenkins Ö÷½çÃæ
·Ç³£ÓÐȤµÄÊÇ£¬Jenkins »¹ÌṩÁ˷dz£·á¸»µÄ²å¼þÖ§³Ö£¬ÕâʹµÃ Jenkins
±äµÃÔ½À´Ô½Ç¿´ó¡£ÎÒÃÇ¿ÉÒÔ·½±ãµÄ°²×°¸÷ÖÖµÚÈý·½²å¼þ£¬´Ó¶ø·½±ã¿ì½ÝµÄ¼¯³ÉµÚÈý·½µÄÓ¦ÓᣱÈÈç Jenkins
ÌṩÁ˶ÔÓÚ IBM Rational ClearCase µÄ²å¼þÖ§³Ö¡£

ͼ 4. Jenkins ¿ÉÒÔ¼¯³É ClearCase
²å¼þ
´ËÍ⣬Jenkins ÌṩÁ˷ḻµÄ¹ÜÀíºÍÅäÖõŦÄÜ£¬°üÀ¨ÏµÍ³ÅäÖᢹÜÀí²å¼þ¡¢²é¿´ÏµÍ³ÐÅÏ¢¡¢ÏµÍ³ÈÕÖ¾¡¢½Úµã¹ÜÀí¡¢Jenkins
ÃüÁîÐд°¿Ú¡¢ÐÅϢͳ¼ÆµÈ¹¦ÄÜ¡£ÊÔÊÔ¿´£¬Äú¾Í»á·¢ÏÖ Jenkins ·Ç³£ºÃÉÏÊÖʹÓá£

ͼ 5. Jenkins ÌṩÁ˷ḻµÄ¹ÜÀí¹¦ÄÜ
»ùÓÚ Jenkins ¿ìËٴ³ÖÐø¼¯³É»·¾³
ÕýÈçǰÎÄÖÐËùÃèÊöµÄÄÇÑù£¬Ò»¸ö³ÖÐø¼¯³É»·¾³ÐèÒª°üÀ¨Èý¸ö·½ÃæÒªËØ£º´úÂë´æ´¢¿â¡¢¹¹½¨¹ý³ÌºÍ³ÖÐø¼¯³É·þÎñÆ÷¡£¶Ô
Jenkins ÓÐÁ˳õ²½Á˽âºó£¬ÎÒÃÇͨ¹ýÒ»¸öʵÀýÀ´¼¯ÖÐչʾÈçºÎ¿ìËٴһ¸ö¼òµ¥µÄ»ùÓÚ Jenkins µÄ³ÖÐø¼¯³É»·¾³¡£
¼ÙÉèÎÒÃÇʹÓõĴúÂë´æ´¢¿âÊÇ IBM Rational ClearCase¡£Jenkins
ÌṩÁË¶Ô ClearCase µÄ²å¼þÖ§³Ö£¬ËüÄÜ·½±ãµØÈÃÎÒÃÇÁ¬½Óµ½ Base ClearCase »òÕß UCM
ClearCase£¬Ê¹Æä³ÉΪ Jenkins Project µÄ´úÂë¿ØÖÆÆ÷¡£ÁíÍ⣬Õâ¸ö²å¼þÊÇ»ùÓÚ cleartool
ÃüÁîµÄ£¬ËùÒÔ±ØÐëÔÚ Jenkins µÄ³ÖÐø¼¯³É·þÎñÆ÷Éϰ²×° ClearCase µÄ¿Í»§¶Ë³ÌÐò¡£
ÔÚ Jenkins µÄ²å¼þ¹ÜÀí½çÃæÖÐÑ¡Ôñ ClearCase Plugin£¬µã»÷Ò³ÃæÏ·½µÄ
Install °´Å¥¡£

ͼ 6. Ñ¡Ôñ ClearCase ²å¼þ
ÔÚ´ò¿ªµÄÒ³ÃæÖÐÌáʾ°²×°Íê³Éºó£¬Jenkins ÐèÒªÖØÐÂÆô¶¯À´¼¤»îÕâ¸ö²å¼þ¡£ÖØÐÂÖ´ÐÐ
java -jar Jenkins.war ºó£¬ÔÚ Jenkins µÄÒ³ÃæÖУ¬ÎÒÃǾÍÄÜ¿´µ½ ClearCase
plugin ÒѾ±»°²×°µ½ Jenkins ÁË¡£

ͼ 7. ClearCase ²å¼þ°²×°³É¹¦
ÀàËÆ IBM Rational ClearCase£¬SVN£¨subversion£©ÊÇĿǰ±È½ÏÁ÷Ðеİ汾¹ÜÀí¹¤¾ß¡£ºÜ¶à¿ªÔ´Èí¼þ¶¼ÊÇÓÃ
SVN ×÷Ϊ´úÂë°æ±¾¹ÜÀíÈí¼þ¡£ÎªÁËÈÃʵÀý¸ü¾ßÓдú±íÐÔ£¬±¾ÎÄÖÐÎÒÃÇʹÓà SVN ×÷Ϊ´úÂë´æ´¢Æ÷¡£
½ÓÏÂÀ´£¬ÎÒÃÇ¿ªÊ¼Ð½¨Ò»¸ö Jenkins ÏîÄ¿£¬ ÓÉÓÚÎÒÃÇÐèÒªÁ¬½Ó SVN
µÄ´úÂë´æ´¢Æ÷£¬ ÎÒÃÇÑ¡Ôñ Build a free-style software project¡£

ͼ 8. н¨ JenkinsTest Job
È»ºóÎÒÃǾͿÉÒԺܷ½±ãµÄÅäÖÃÕâ¸ö JenkinsTest ÏîÄ¿ÁË¡£Jenkins
ºÜÈËÐÔ»¯µÄÒ»µãÊÇÔÚÿ¸öÅäÖÃÏîµÄÓҲ඼ÓÐÒ»¸ö°ïÖúµÄͼ±ê£¬µã»÷Õâ¸öͼ±ê£¬Jenkins »á¸æËßÄúÈçºÎÅäÖÃÕâ¸öÅäÖÃÏî¡£

ͼ 9. ÅäÖà JenkinsTest
¸ù¾Ýʵ¼ÊµÄ SVN ·þÎñÆ÷·þÎñÆ÷ÐÅÏ¢ÅäÖà Source Code Management£¬ÕâÄÜÈÃ
Jenkins ÖªµÀÈçºÎ´ÓÄÄÀï»ñÈ¡×îеĴúÂë¡£±¾ÀýÖмÙÉè Repository ¾ÍÔÚ±¾µØ¡£

ͼ 10. ÅäÖÃÁ¬½Óµ½ SVN ·þÎñÆ÷
¸ù¾Ý¿ª·¢ÐèÒª£¬¼ÙÉèÿһ¸öСʱÎÒÃÇÐèÒªÖØÐ¹¹½¨Ò»´Î¡£Ñ¡Ôñ Build periodically£¬ÔÚ
Schedule ÖÐÌîд 0 * * * *¡£
µÚÒ»¸ö²ÎÊý´ú±íµÄÊÇ·ÖÖÓ minute£¬È¡Öµ 0~59£»
µÚ¶þ¸ö²ÎÊý´ú±íµÄÊÇСʱ hour£¬È¡Öµ 0~23£»
µÚÈý¸ö²ÎÊý´ú±íµÄÊÇÌì day£¬È¡Öµ 1~31£»
µÚËĸö²ÎÊý´ú±íµÄÊÇÔ month£¬È¡Öµ 1~12£»
×îºóÒ»¸ö²ÎÊý´ú±íµÄÊÇÐÇÆÚ week£¬È¡Öµ 0~7£¬0 ºÍ 7 ¶¼ÊDZíʾÐÇÆÚÌì¡£
ËùÒÔ 0 * * * * ±íʾµÄ¾ÍÊÇÿ¸öСʱµÄµÚ 0 ·ÖÖÓÖ´ÐÐÒ»´Î¹¹½¨¡£

ͼ 11. Ñ¡ÔñÈçºÎ´¥·¢¹¹½¨
½ÓÏÂÀ´¾ÍÊÇÒªÌí¼Ó build µÄ²½ÖèÁË¡£Jenkins ÌṩÁËËĸöÑ¡ÏÎÒÃÇÑ¡Ôñ£¬¿ÉÒÔ¸ù¾ÝÐèÒªÖ´Ðлòµ÷ÓÃÍⲿÃüÁîºÍ½Å±¾¡£

ͼ 12. ËÄÖÖ build step ¹©Ñ¡Ôñ
ÔÚ±¾ÀýÖУ¬ÎÒÃÇͨ¹ýµ÷ÓúÍÖ´ÐÐ Windows batch command£¬½«
SVN repository ÖÐ Java ´úÂë±àÒë²¢Éú³É Jar Îļþ¡£Ò²¿ÉÒÔ¸ù¾ÝÏîÄ¿µÄʵ¼Ê±àд×Ô¼ºµÄ
shell ½Å±¾ÅäÖÃÔÚÕâÀï¡£

ͼ 13. ÅäÖà Execute Windows
batch command
Ñ¡ÔñºÍÅäÖÃÆäËûµÄÑ¡Ï±ÈÈçÓʼþÌáÐÑ£¬È»ºóµã»÷ save ±£´æ¡£

ͼ 14. ÅäÖÃÓʼþÌáÐÑ
½ÓÏÂÀ´µÄÿСʱµÄµÚ 0 ·ÖÖÓ£¬JenkinsTest Job ¾Í»á±»¹¹½¨¡£ÎÒÃÇ¿ÉÒÔÔÚ
Jenkins Öй۲칹½¨µÄ½ø¶ÈºÍ×îÖÕµÄ״̬¡ª¡ª³É¹¦»òÕßʧ°Ü¡£Ì«Ñô´ú±í֮ǰµÄ¹¹½¨Ã»ÓÐÈκÎʧ°Ü£¬À¶É«µÄСÇò´ú±í¹¹½¨³É¹¦¡£

ͼ 15. JenkinsTest ¿ªÊ¼¹¹½¨
ͬʱÎÒÃÇ¿ÉÒÔµã»÷ JenkinsTest ²é¿´µ¥´Î¹¹½¨µÄ Console
µÄÊä³ö½á¹û¡£´ÓÖÐÎÒÃÇÄÜ¿´µ½¹¹½¨µÄµÚÒ»²½ÊÇ´Ó SVN ·þÎñÆ÷ÉÏ check out ´úÂ룬Ȼºóµ÷ÓÃÎÒÃÇÏÈǰÅäÖõÄ
Windows batch command¡£

ͼ 16. JenkinsTest ¹¹½¨µÄ
console Êä³ö
×îºó£¬ÎÒÃÇ¿ÉÒÔ¿´µ½ build µÄ×îºó½á¹û Success£¬±íÃ÷±¾´Î¹¹½¨³É¹¦¡£

ͼ 17. ¹¹½¨³É¹¦µÄ Console Êä³ö
½ÓÏÂÀ´ÎÒÃÇÔÙ´Îн¨Ò»¸ö Jenkins µÄ Job£¬ÓÃÓÚ½«Éú³ÉµÄ build
·Ö·¢µ½²»Í¬µÄ½ÚµãÉÏ¡£Õâ´Î build triggers ÎÒÃÇÑ¡Ôñ Build after other projects
are built£¬ÈÃÕâ¸ö Job ÔÚ JenkinsTest ³É¹¦ build ºó´¥·¢¡£ÕâÑùÒ»À´¾ÍÄÜ´ïµ½ÎÒÃÇ×Ô¶¯
build ºÍ×Ô¶¯·Ö·¢µÄ¹¦ÄÜ¡£

ͼ 18. н¨ Distribute job
²»Í¬µÄÊÇ£¬Õâ´ÎÎÒÃÇÑ¡Ôñµ÷Óà Ant ½Å±¾À´Íê³É·Ö·¢µÄ¹¤×÷¡£Ö»ÐèÒª½« Ant
½Å±¾µÄ XML µÄÎļþÅäÖÃÔÚ Targets Öй© Jenkins µ÷Óá£

ͼ 19. Distribute µ÷ÓÃÍⲿ
Ant ½Å±¾
È»ºóÎÒÃǾͿÉÒÔÔÚ Jenkins Öй۲칹½¨µÄ״̬ÁË¡£Ò»µ©¹¹½¨Ê§°ÜÎÒÃÇÄÜ¿´µ½ÏàÓ¦µÄ¾¯Ê¾Í¼±ê£¬Í¬Ê±£¬Èç¹ûÅäÖÃÁËÓʼþÌáÐÑ£¬Ïà¹ØÈËÔ±Ò²»áÊܵ½Óʼþ¡£¼ÇסÎÒÃÇÏÈǰËùÌáÐѵÄÄÇÑù£¬·ÖÎöºÍ´¦Àí¹¹½¨µÄʧ°ÜÊÇÓÅÏȼ¶×î¸ßµÄ¹¤×÷¡£½ÓÏÂÀ´£¬ÎÒÃÇ»¹¿ÉÒÔ¼ÓÈë¸ü¶àµÄ
Jenkins ÏîÄ¿À´ÊµÏÖ×Ô¶¯»¯²âÊԵȹ¦ÄÜ£¬ÈóÖÐø¼¯³É¸ü·½±ãÓÐЧµØ·þÎñÓÚÏîÄ¿¿ª·¢¡£

ͼ 20. ²é¿´³ÖÐø¼¯³É״̬
½áÊøÓï
±¾Îļòµ¥½éÉÜÁ˳ÖÐø¼¯³ÉµÄ¸ÅÄî²¢×ÅÖØ½éÉÜÁËÈçºÎ»ùÓÚ Jenkins ¿ìËÙ¹¹½¨³ÖÐø¼¯³É»·¾³¡£Í¨¹ý¾ßÌåʵÀýµÄÃèÊö£¬ÏàÐŶÁÕß¶Ô
Jenkins µÄ»ù±¾¹¦ÄܺÍʵÏÖ·½·¨Óиö¸üÇå³þµØÈÏʶºÍÀí½â¡£Æäʵ£¬Jenkins µÄ¹¦ÄÜÔ¶²»ÖÁÎÄÖÐËùÊöµÄÕâЩ£¬Jenkins
»¹ÓÐÏ꾡µÄÈÕÖ¾´¦ÀíºÍ³ÖÐø¼¯³É¹¹½¨×´Ì¬µÄ·ÖÎöµÈ¹¦ÄÜ¡£Ï£ÍûÔÚ½øÒ»²½µÄѧϰºÍÓ¦ÓÃÖÐÓë´ó¼Ò·ÖÏí¡£
|