µÚ¶þÕÂ
Jenkins°²×°ÓëÅäÖÃ
2 Jenkins°²×°
ÔÚ×î¼òµ¥µÄÇé¿öÏ£¬Jenkins Ö»ÐèÒªÁ½¸ö²½Ö裺
1.ÏÂÔØ×îеİ汾£¨Ò»¸ö WAR Îļþ£©¡£Jenkins¹Ù·½ÍøÖ·: http://Jenkins-ci.org/
2.ÔËÐÐ java -jar jenkins.war
×¢Ò⣺Jenkins ÐèÒªÔËÐÐ Java 5ÒÔ¼°ÒÔÉϵİ汾¡£
»¹ÓÐÒ»ÖÖ°²×°·½Ê½¾ÍÊǽ«ÏÂÔØµÄwar°üÎļþ²¿Êðµ½ servlet ÈÝÆ÷£¬È»ºóÆô¶¯ÈÝÆ÷£¬ÔÚä¯ÀÀÆ÷µÄURLµØÖ·À¸ÖÐÊäÈëÀàËÆhttp://localhost:8080/jenkins/ÕâÑùµÄµØÖ·¼´¿É¡£ÏÂͼÊǰ²×°³É¹¦ºóµÄ½çÃæ£¨Ê¹ÓõÄÊÇLinux+Tomcat6+Java6»·¾³£©£º

ͼ2 JenkinsÖ÷½çÃæ
3 JenkinsÅäÖÃ
дÔÚÅäÖÃǰµÄһЩ»°£ºJenkinsµÄÅäÖò»¿ÉÄÜÈ«²¿¶¼Ëµµ½µÄ£¬´ó²¿·ÖÅäÖÃÊÇÓÐÓ¢ÎÄ˵Ã÷µÄ£¬µã»÷ÊäÈë¿òºóÃæµÄÎʺžͿÉÒÔ¿´¼ûÁË¡£Ó¢ÎIJ»»áÓ÷Ò빤¾ß£¬Á¬ÃÉ´ø²ÂµÄ£¬¶à²âÊÔ¼¸´Î£¬Äã¾Í¶®ÁË¡£
3.1 ϵͳ¹ÜÀí
ÔÚÒÑÔËÐеÄJenkinsÖ÷Ò³ÖУ¬µã»÷×ó²àµÄϵͳ¹ÜÀí½øÈëÈçϽçÃæ£º

ͼ3 Jenkinsϵͳ¹ÜÀí
3.1.1 ÌáʾÐÅÏ¢
Ps£º°æ±¾²»Í¬ÌáʾµÄÏûÏ¢ÓпÉÄܲ»Í¬
3.1.1.1 Utf-8±àÂë
Your container doesn't use UTF-8 to
decode URLs. If you use non-ASCII characters as a job
name etc, this will cause problems. See Containers and
Tomcat i18n for more details.
Jenkins½¨ÒéÔÚtomcatÖÐʹÓÃutf-8±àÂ룬ÅäÖÃtomcatÏÂconfĿ¼µÄserver.xmlÎļþ

ͼ4 URIEncoding±àÂëÉèÖÃ
Ps£ºÈç¹ûJobµÄ¿ØÖÆÌ¨ÖÐÎÄÊä³öÂÒÂ룬Ç뽫URIEncoding=¡±utf-8¡±¸ü¸ÄΪuseBodyEncodingForURI="true"
3.1.1.2 еİ汾
New version of Jenkins (1.518.JENKINS-14362-jzlib)
is available for download (changelog).
ÌáʾÓÐеİ汾¿ÉÒÔÏÂÔØÁË,ϲ»¶¸üеĵã»÷downloadÈ¥ÏÂÔØ°É£¡
3.1.1.3 °²È«ÉèÖÃ

ͼ5 °²È«ÌáʾÏûÏ¢
Õ²½ð˹ÔÊÐíÍøÂçÉϵÄÈκÎÈË´ú±íÄúÆô¶¯½ø³Ì¡£¿¼ÂÇÖÁÉÙÆôÓÃÉí·ÝÑéÖ¤À´×èÖ¹ÀÄÓᣵã»÷DismissºöÂÔ¸ÃÏûÏ¢,µã»÷Setup
Security½øÈëÉèÖýçÃæ.ÏêϸÉèÖÃÇë²Î¿¼ Configure Global Security(°²È«ÉèÖÃ)
Õ½Ú
3.1.2 ϵͳÉèÖÃ
ÔÚÒÑÔËÐеÄJenkinsÖ÷Ò³ÖУ¬µã»÷×ó²àµÄϵͳ¹ÜÀí¡ª>ϵͳÉèÖýøÈëÈçϽçÃæ£º

ͼ6 ϵͳÉèÖýçÃæ
3.1.2.1 JDK¡¢Maven¡¢AntÅäÖÃ
ÅäÖÃÒ»¸öJDK¡¢Ant¡¢MavenʵÀý£¬ÇëÔÚÿһ½ÚÏÂÃæµ¥»÷Add(ÐÂÔö)
°´Å¥£¬ÕâÀォÌí¼ÓʵÀýµÄÃû³ÆºÍ¾ø¶ÔµØÖ·¡£ÏÂͼÃèÊöÁËÕâÁ½¸ö²¿·Ö¡£

ͼ7 JDKÅäÖýçÃæ
JDK±ðÃû£º¸øÄã¿´µÄ£¬Ëæ±ãÄã×Ô¼º£¬½Ð°¢Ã¨°¢¹·¶¼¿ÉÒÔ
JAVA_HOME£ºÕâ¸öÊDZ¾»úJDKµÄ°²×°Â·¾¶£¨´íÎóµÄ·¾¶»áÓкì×ÖÌáʾÄãµÄ£©
×Ô¶¯°²×°£º²»ÍƼöÕâ¸öÑ¡Ïî
ºóÃæAntÓëMavenµÄÅäÖÃÊÇÒ»ÑùµÄ£¬JDKÈ¥oracle¹ÙÍøÏÂÔØ£¬AntÓëMavenÈ¥apache¹ÙÍøÏÂÔØ
Ps£ºÃ¿¸öÎı¾¿òºóÃæ¶¼ÓиöÎʺţ¬µã»÷Îʺžͻá³öÏÖ°ïÖúÐÅÏ¢
3.1.2.2 Óʼþ֪ͨÅäÖÃ
3.1.2.2.1 ÅäÖ÷¢¼þÈ˵ØÖ·

ͼ8 ·¢¼þÈ˵ØÖ·ÅäÖýçÃæ
System Admin e-mail address£ºJenkinsÓʼþ·¢Ë͵ØÖ·£¬Èç¹ûÄãÕâ¸öûÓÐÅäÖ㬵È×Å·¢ÓʼþµÄʱºò±¨´í°É£¬µ±Ê±ÎÒÒ²ÊÇÕâ¶ùûÓÐÅäÖã¬ÓôÃÆÁËÎÒÒ»ÖܵÄʱ¼ä¡£¡Ñ©n¡Ñbº¹
3.1.2.2.2 ÅäÖÃÓʼþ֪ͨ

ͼ9 Óʼþ֪ͨ
Õâ¸ö¾Í·Ç³£µÄ¼òµ¥ÁË£¬¸ù¾ÝµÄµÄÓÊÏäÌṩÕߵIJÎÊýÅäÖþÍÐÐÁË¡£
Ps£ºÐ¡¼¼ÇÉ£ºÓû§Ä¬ÈÏÓʼþºó׺ÅäÖÃÁ˺ó£¬ÒÔºóÄãÌîдÓʼþµØÖ·Ö»ÐèÒª@֮ǰµÄ¾ÍÐÐÁË
3.1.2.3 SubversionÅäÖÃ

ͼ10 SubversionÅäÖÃ
Subversion Workspace Version£ºSubversion µÄ°æ±¾ºÅ£¬Ñ¡ÔñÄã¶ÔÓ¦µÄ°æ±¾ºÅ¾ÍÐÐÁË
3.1.3 Configure Global Security(°²È«ÉèÖÃ)
ÔÚÒÑÔËÐеÄJenkinsÖ÷Ò³ÖУ¬µã»÷×ó²àµÄϵͳ¹ÜÀí¡ª>Configure
Global Security½øÈëÈçϽçÃæ£º

ͼ11 °²È«ÉèÖýçÃæ
ÉèÖÃÈçÉÏͼ£¬±£´æºóϵͳ¹ÜÀíÖоͳöÏÖ¹ÜÀíÓû§µÄÑ¡Ïî¡£Ò³ÃæÓÒÉϽÇÒ²»á³öÏֵǼ/×¢²áµÄÑ¡Ïî¡£
3.1.4 ¹ÜÀíÓû§ÉèÖÃ
ÔÚÓÒÉϽǵã»÷×¢²á

ͼ12 ×¢²áÓû§½çÃæ
µã»÷sign up°´Å¥£¬ÌáʾÄãÏÖÔÚÒѾµÇ¼.·µ»ØÊ×Ò³.
µÇ¼ºóºÍÄäÃûÕ˺ſ´µ½µÄÊ×Ò³Óм¸µã²»Í¬£¬ÈçÏÂͼºì¿òËùʾ£º

ͼ13 Óû§µÇ¼½çÃæ
3.1.5 ¹ÜÀí²å¼þÉèÖÃ
½¨ÒéÏÈÔĶÁJenkins²å¼þÕ½ڣ¬ÔÚ»ØÀ´°²×°ÈçÏÂËùʾµÄ²å¼þ¡£Õâ¸ö²å¼þ½«Éú³ÉµÄ¹¹¼þ£¨war»òÕßear£©²¿Êðµ½Ö÷Á÷µÄ·þÎñÆ÷ÉÏ¡£
²å¼þÃû³Æ£ºDeploy Plugin
²å¼þ½éÉÜ£ºThis plugin takes a war/ear file and deploys that
to a running remote application server at the end of
a build
3.2 ÏîÄ¿¹¹½¨ÉèÖÃ
3.2.1 ¹¹½¨×ÔÓÉ·ç¸ñµÄJob
3.2.1.1 н¨×ÔÓÉ·ç¸ñ¹¹½¨ÈÎÎñ
ÔÚÒÑÔËÐеÄJenkinsÖ÷Ò³ÖУ¬µã»÷×ó²àµÄн¨Job½øÈëÈçϽçÃæ£º

ͼ14 н¨Job½çÃæ
Õâʱ£¬ÐèҪΪÐµĹ¹½¨ÈÎÎñÖ¸¶¨Ò»¸öÃû³Æ¡££¨ÕâÀïÊäÈëµÄÈÎÎñÃû³ÆÎª£ºAnt_test£©ÕâÀïÓм¸ÖÖµÄÈÎÎñÀàÐͿɹ©Ñ¡Ôñ£¬¼øÓÚ³õ²½½éÉÜ£¬ÏÈÑ¡Ôñ¹¹½¨Ò»¸ö×ÔÓÉ·ç¸ñµÄÈí¼þÏîÄ¿¡£¶ÔÓÚÆäËûµÄÀàÐÍ,¾³£Ê¹ÓõÄÊÇ¿½±´ÒÑ´æÔÚÈÎÎñ;ÕâÖ÷ҪΪÁËÄÜÔÚÏÖÓеÄÈÎÎñ»ù´¡ÉÏн¨ÈÎÎñ¡£µã»÷OK°´Å¥£¬
3.2.1.2 ¹¹½¨ÈÎÎñÅäÖÃ
3.2.1.2.1 Ô´Âë¹ÜÀíÅäÖÃ
ÑÝʾÊÇʹÓÃSubversionµÄÁ´½Ó£¬ÔÚRepository URLÖÐÊäÈëÄãµÄÏîÄ¿Á´½Ó£¬Èç¹ûûÓÐȨÏÞÔò»áÌáʾÈçÏÂͼ£º

ͼ15 SubversionÅäÖýçÃæ
µã»÷ enter credential ÊäÈëÓû§ÃûºÍÃÜÂë(ÎҲ´ó¼ÒÒ»°ã¶¼ÊÇʹÓõÄÓû§ÃûºÍÃÜÂëµÇ½µÄ)

ͼ16 SubversionȨÏÞÈÏÖ¤½çÃæ
Ps£ºsvnµÄÓû§ÃûºÍÃÜÂëÉèÖÃÁËÊÇûÓа취ÔÚweb½çÃæÐ޸ĵġ£Èç¹ûÒªÐÞ¸ÄÔòÏÈÈ¥JenkinsĿ¼ɾ³ýhudson.scm.SubversionSCM.xmlÎļþ£¨µãµ½ÎªÖ¹£¬±Ï¾¹ÕâÖ»ÊÇÈëÃŽ̳̣©
3.2.1.2.2 ¹¹½¨´¥·¢Æ÷
ÔÚÆäËûÏîÄ¿¹¹½¨Íê³Éºó²ÅÖ´Ðй¹½¨£ºÖ¸¶¨µÄÏîÄ¿Íê³É¹¹½¨ºó£¬´¥·¢´ËÏîÄ¿µÄ¹¹½¨¡£
Poll SCM £ºÕâÊÇCI ϵͳÖг£¼ûµÄÑ¡Ïî¡£µ±ÄúÑ¡Ôñ´ËÑ¡ÏÄú¿ÉÒÔÖ¸¶¨Ò»¸ö¶¨Ê±×÷Òµ±í´ïʽÀ´¶¨ÒåJenkinsÿ¸ô¶à¾Ã¼ì²éÒ»ÏÂÄúÔ´´úÂë²Ö¿âµÄ±ä»¯¡£Èç¹û·¢Ïֱ仯£¬¾ÍÖ´ÐÐÒ»´Î¹¹½¨¡£ÀýÈ磬±í´ïʽÖÐÌîд0,15,30,45
* * * *½«Ê¹Jenkinsÿ¸ô15·ÖÖӾͼì²éÒ»´ÎÄúÔ´Âë²Ö¿âµÄ±ä»¯¡£
Build periodically £º´ËÑ¡Ïî½ö½ö֪ͨJenkins°´Ö¸¶¨µÄƵÂʶÔÏîÄ¿½øÐй¹½¨£¬¶ø²»¹ÜSCMÊÇ·ñÓб仯¡£Èç¹ûÏëÔÚÕâ¸öJobÖÐÔËÐÐһЩ²âÊÔÓÃÀýµÄ»°£¬Ëü¾ÍºÜÓаïÖú¡£
3.2.1.2.3 Ant¹¹½¨ÅäÖÃ
ÒòΪÎÒµÄÏîÄ¿ÊÇÓÃant½Å±¾ÊµÏֵıàÒëºÍ´ò°ü£¬ËùÒÔÎÒÑ¡ÔñµÄÊÇInvoke
Ant£¬Ant VersionÑ¡ÔñÄãAntÅäÖõÄÄǸöÃû×Ö£¬×¢ÒⲻҪѡÔñdefaultร¬ÄǸöÑ¡ÔñÁËûÓÐÓá£

ͼ17 Ant¹¹½¨ÅäÖýçÃæ
Èç¹ûÄãµÄ¹¹½¨½Å±¾build.xml²»ÔÚworkspace¸ùĿ¼¡¢»òÕß˵ÄãµÄ¹¹½¨½Å±¾²»½Ðbuild.xml¡£ÄÇôÐèÒªÔڸ߼¶ÀïÉèÖÃBuild
FileÑ¡ÏîµÄ·¾¶£¬Ö¸Ã÷ÄãµÄ½Å±¾¡£×¢Ò⣺ÊÇÏà¶Ô·¾¶
²¿ÊðÇë²Î¿¼£ºwarÎļþ²¿ÊðÕ½Ú
3.2.2 ¹¹½¨Maven·ç¸ñµÄJob
3.2.2.1 н¨Maven¹¹½¨ÈÎÎñ

ͼ18 н¨Job½çÃæ
Õâʱ£¬ÐèҪΪÐµĹ¹½¨ÈÎÎñÖ¸¶¨Ò»¸öÃû³Æ¡££¨ÕâÀïÊäÈëµÄÈÎÎñÃû³ÆÎª£ºmaven_test£©ÕâÀïÓм¸ÖÖµÄÈÎÎñÀàÐͿɹ©Ñ¡Ôñ£¬¼øÓÚ³õ²½½éÉÜ£¬ÏÈÑ¡Ôñ¹¹½¨Ò»¸ömaven2/3ÏîÄ¿¡£¶ÔÓÚÆäËûµÄÀàÐÍ,¾³£Ê¹ÓõÄÊÇ¿½±´ÒÑ´æÔÚÈÎÎñ;ÕâÖ÷ҪΪÁËÄÜÔÚÏÖÓеÄÈÎÎñ»ù´¡ÉÏн¨ÈÎÎñ¡£µã»÷OK°´Å¥£¬
3.2.2.2 ¹¹½¨ÈÎÎñÅäÖÃ

ͼ19 ¹¹½¨ÈÎÎñÅäÖýçÃæ
3.2.2.2.1 Ô´Âë¹ÜÀíÅäÖÃ
ÑÝʾÊÇʹÓÃSubversionµÄÁ´½Ó£¬ÔÚRepository URLÖÐÊäÈëÄãµÄÏîÄ¿Á´½Ó£¬Èç¹ûûÓÐȨÏÞÔò»áÌáʾÈçÏÂͼ£º

ͼ20 SubversionÅäÖýçÃæ
µã»÷ enter credential ÊäÈëÓû§ÃûºÍÃÜÂë(ÎҲ´ó¼ÒÒ»°ã¶¼ÊÇʹÓõÄÓû§ÃûºÍÃÜÂëµÇ½µÄ)

ͼ21 SubversionȨÏÞÈÏÖ¤½çÃæ
Ps£ºsvnµÄÓû§ÃûºÍÃÜÂëÉèÖÃÁËÊÇûÓа취ÔÚweb½çÃæÐ޸ĵġ£Èç¹ûÒªÐÞ¸ÄÔòÏÈÈ¥JenkinsĿ¼ɾ³ýhudson.scm.SubversionSCM.xmlÎļþ£¨µãµ½ÎªÖ¹£¬±Ï¾¹ÕâÖ»ÊÇÈëÃŽ̳̣©
3.2.2.2.2 ¹¹½¨´¥·¢Æ÷
ÔÚÆäËûÏîÄ¿¹¹½¨Íê³Éºó²ÅÖ´Ðй¹½¨£ºÖ¸¶¨µÄÏîÄ¿Íê³É¹¹½¨ºó£¬´¥·¢´ËÏîÄ¿µÄ¹¹½¨¡£
Poll SCM £ºÕâÊÇCI ϵͳÖг£¼ûµÄÑ¡Ïî¡£µ±ÄúÑ¡Ôñ´ËÑ¡ÏÄú¿ÉÒÔÖ¸¶¨Ò»¸ö¶¨Ê±×÷Òµ±í´ïʽÀ´¶¨ÒåJenkinsÿ¸ô¶à¾Ã¼ì²éÒ»ÏÂÄúÔ´´úÂë²Ö¿âµÄ±ä»¯¡£Èç¹û·¢Ïֱ仯£¬¾ÍÖ´ÐÐÒ»´Î¹¹½¨¡£ÀýÈ磬±í´ïʽÖÐÌîд0,15,30,45
* * * *½«Ê¹Jenkinsÿ¸ô15·ÖÖӾͼì²éÒ»´ÎÄúÔ´Âë²Ö¿âµÄ±ä»¯¡£
Build periodically £º´ËÑ¡Ïî½ö½ö֪ͨJenkins°´Ö¸¶¨µÄƵÂʶÔÏîÄ¿½øÐй¹½¨£¬¶ø²»¹ÜSCMÊÇ·ñÓб仯¡£Èç¹ûÏëÔÚÕâ¸öJobÖÐÔËÐÐһЩ²âÊÔÓÃÀýµÄ»°£¬Ëü¾ÍºÜÓаïÖú¡£
3.2.2.2.3 Maven¹¹½¨ÉèÖÃ

ͼ22 Maven¹¹½¨ÅäÖýçÃæ
2013-08-22²¹³äGoals and options £ºclean install -Dmaven.test.skip=true¡¡¡¡#¼ÓÈëÁËÌø¹ý²âÊԵĴúÂë
Root POM:ÌîдÄãÏîÄ¿µÄpom.xmlÎļþµÄλÖã¬×¢Ò⣺ÊÇÏà¶ÔλÖã¬Èç¹û¸ÃÎļþ²»´æÔÚ£¬»áÓкìÉ«×ÖÌáʾ¡£
²¿ÊðÇë²Î¿¼£ºwarÎļþ²¿ÊðÕ½Ú
3.2.2.2.4 ¹¹½¨mavenÏîÄ¿µÄÐĵÃ
ʹÓÃJenkins¹¹½¨mavenÏîÄ¿µÄÒ»µãСÐĵãº
mavenÏîÄ¿µÄ¹¹½¨ÊDZȽÏÂé·³µÄ£¬Èç¹ûÄãµÄÏîÄ¿ÊÇÏÂͼÕâÖֽṹ¡£ÄÇô¹§Ï²Ä㣡Äãн¨Ò»¸öjob¾Í¿ÉÒÔÁË£¬ÒòΪֻÓÐÒ»¸ö¸ù¡£Èç¹ûÄãµÄsvnµØÖ·ÊÇ£ºhttps://192.xxx/Pe_Project/root-pom£¬ÄÇôRoot
POMÖ»ÐèÒª±£³ÖĬÈϾÍÐÐÁË£¬ÒòΪJenkins¿ÉÒÔÔÙworkspaceĿ¼ÏÂÃæÕÒµ½pom.xmlÎļþ
Èç¹ûÄãµÄsvnµØÖ·ÊÇ£ºhttps://192.xxx/Pe_Project£¬ÄÇôRoot POMÐèÒªÖ¸¶¨Îªroot-pom/pom.xml£¬ÒòΪJenkins¿ÉÒÔÔÙworkspace/root-pomĿ¼ÏÂÃæÕÒµ½pom.xmlÎļþ

ͼ23 MavenÏîÄ¿½á¹¹½çÃæ1
ÉÏÃæÕâÖÖ·½·¨´ò°üµÄʱºò·Ç³£¼òµ¥£¬µ«ÊÇÓÃeclipse¿ª·¢µÄʱºòÄã¾Í²»ÓÒ¼ürun
as ¡ª>tomcaÆô¶¯ÁË£¬Èç¹ûÄãÏëʹÓÃÕâÖÖ·½Ê½£¬½«tomcat»»³Éjetty¼´¿É¡£
Èç¹ûÄãµÄÏîÄ¿ÊÇÏÂͼÕâÖֽṹ£¬ÄÇô·Ç³£±¯¾çµÄ¸æËßÄ㣬ÄãÒª½¨Á¢ºÃ¼¸¸öjobÀ´¹¹½¨ÕâÒ»¸öÏîÄ¿£¬ÒòΪÕâ¸öÏîÄ¿ÓÐ4¸ö¸ù¡£

ͼ24 MavenÏîÄ¿½á¹¹½çÃæ2
ÉÏÃæÕâÖÖ·½·¨´ò°üµÄʱºò±È½ÏÂé·³£¬µ«ÊÇÓÃeclipse¿ª·¢µÄʱºòÄã¾Í¿ÉÒÔʹÓÃÓÒ¼ürun
as ¡ª>tomcaÆô¶¯ÁË
3.2.3 Óʼþ֪ͨÉèÖÃ

ͼ25 ¹¹½¨ºó²Ù×÷½çÃæ
Ñ¡ÔñAdd post-build action£¬È»ºóÑ¡ÔñE-mail Notification£¬ÈçÏÂͼ£º

ͼ26 ÊÕ¼þÈËÁбí½çÃæ
ÔÚRecipientsÖÐÊäÈëÊÕ¼þÈËÓʼþµØÖ·£¬Èç¹ûÓöà¸öÊÕ¼þÈËÓá°,¡±Ó¢ÎĶººÅ¸ô¿ª
3.2.4 WarÎļþ²¿ÊðÉèÖÃ
Ê×ÏÈÄã±ØÐë°²×°ºÃDeploy Plugin²å¼þ£¬È»ºóÔÚtomcatµÄconfĿ¼ÅäÖÃtomcat-users.xmlÎļþ£¬ÔÚ<tomcat-users>½ÚµãÀïÌí¼ÓÈçÏÂÄÚÈÝ£º
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="username" password="password"
roles="manager-gui,manager-script,manager-jmx,manager-status"/>
ÒýºÅÀïµÄusernameºÍpassword¿ÉÒÔËæ±ãÌæ»»£¬´ý»áÒªÓõġ£
ºÃÁË£¬»Øµ½JenkinsÏîÄ¿ÅäÖÃÒ³Ãæ£º

ͼ27 ¹¹½¨ºó²Ù×÷½çÃæ
Ñ¡ÔñAdd post-build action£¬È»ºóÑ¡ÔñDeploy war/ear to a container£¬ÈçÏÂͼ£º

ͼ28 Ô¶³Ì²¿ÊðÅäÖýçÃæ
WAR/EAR files£ºwarÎļþµÄ´æ·ÅλÖã¬È磺target/test.war ×¢Ò⣺Ïà¶Ô·¾¶£¬targetǰÊÇûÓÐ/µÄ¡£
Context path£º·ÃÎÊʱÐèÒªÊäÈëµÄÄÚÈÝ£¬ÈçofCard·ÃÎÊʱÈçÏ£ºhttp://192.168.x.x:8080/ofCard/Èç¹ûΪ¿Õ£¬Ä¬ÈÏÊÇwar°üµÄÃû×Ö¡£
Container£ºÑ¡ÔñÄãµÄwebÈÝÆ÷£¬Èçtomca 6.x
Manager user name£ºÌîÈëtomcat-users.xmlÅäÖõÄusernameÄÚÈÝ
Manager password£ºÌîÈëtomcat-users.xmlÅäÖõÄpasswordÄÚÈÝ
Tomcat URL£ºÌîÈëhttp://192.168.x.x:8080/
Deploy on failure£º¹¹½¨Ê§°ÜÒÀÈ»²¿Êð£¬Ò»°ã²»Ñ¡Ôñ
×¢Ò⣺ËäÈ»ÕâÖÖ²¿Êð·½·¨¿ÉÄܻᵼÖÂtomcat¼ÓÔØÊ±³öÏÖ¿¨ËÀµÄÏÖÏó¡£µ«ÊÇÒ²ÊÇ×î¼òµ¥µÄ²¿Êð·½Ê½¡£Èç¹û¿¨ËÀÁËÖØÆôϾͺÃÁË£¬½«tomcatµÄjavaÄÚ´æ²ÎÊýµ÷¸ß¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ¡£
×îºó²»ÒªÍü¼Çµã»÷±£´æà¸¡£
ºÃÁË£¡µ½´ËÒ»¸öÏîÄ¿µÄ»ñȡԴÂ룬´ò°ü£¬Ô¶³Ì²¿Êð£¬Óʼþ֪ͨ¾ÍÍê³ÉÁË¡£
3.3 ¼à¿Ø
µ±ÈÎÎñÒ»µ©ÔËÐУ¬Äú½«»á¿´µ½Õâ¸öÈÎÎñÕýÔÚ¶ÓÁÐÖеÄÒDZí°åºÍµ±Ç°¹¤×÷Ö÷Ò³ÉÏÔËÐС£ÕâÁ½ÖÖÏÔʾÈçÏ¡£

ͼ29 Ö÷Ò³¼à¿Ø£¨×󣩣¬ÏîÄ¿¼à¿Ø£¨ÓÒ£©
Ò»µ©¹¹½¨Íê³Éºó£¬Íê³ÉºóµÄÈÎÎñ½«»áÓÐÈý¸öµØ·½½øÐÐÏÔʾ¡£
Äã¿ÉÒÔÔÚJenkinsµÄ¿ØÖÆÃæ°åÉÏ¿´µ½Ëü£¬ÈçÏÂͼ¡£

ͼ30 Ö÷Ò³ÏîÄ¿½çÃæ
ÔÚÉÏÃæÕ¹Ê¾µÄ½ØÍ¼ÖУ¬Äú½«×¢Òâµ½ÓÐÁ½¸öͼ±êÃèÊöµ±Ç°×÷ÒµµÄ״̬¡£SÀ¸Ä¿´ú±í×Å¡°×îй¹½¨×´Ì¬¡±£¬WÀ¸Ä¿´ú±í×Å¡°¹¹½¨Îȶ¨ÐÔ¡±¡£JenkinsʹÓÃÕâÁ½¸ö¸ÅÄîÀ´½éÉÜÒ»¸ö×÷ÒµµÄ×ÜÌå×´¿ö£º
¹¹½¨×´Ì¬:ÏÂͼÖзּ¶·ûºÅ¸ÅÊöÁËÒ»¸öJobнüÒ»´Î¹¹½¨»á²úÉúµÄËÄÖÖ¿ÉÄܵÄ״̬£º
Successful:Íê³É¹¹½¨£¬ÇÒ±»ÈÏΪÊÇÎȶ¨µÄ¡£
Unstable:Íê³É¹¹½¨£¬µ«±»ÈÏΪ²»Îȶ¨¡£
Failed:¹¹½¨Ê§°Ü¡£
Disabled:¹¹½¨ÒѽûÓá£

ͼ31 ¹¹½¨×´Ì¬½çÃæ
¹¹½¨Îȶ¨ÐÔ: µ±Ò»¸öJobÖй¹½¨ÒÑÍê³É²¢Éú³ÉÁËÒ»¸öδ·¢²¼µÄÄ¿±ê¹¹¼þ£¬Èç¹ûÄú×¼±¸ÆÀ¹À´Ë´Î¹¹½¨µÄÎȶ¨ÐÔ£¬Jenkins»á»ùÓÚһЩºó´¦ÀíÆ÷ÈÎÎñΪ¹¹½¨·¢²¼Ò»¸öÎȽ¡Ö¸Êý
(´Ó0-100 )£¬ÕâЩÈÎÎñÒ»°ãÒÔ²å¼þµÄ·½Ê½ÊµÏÖ¡£ËüÃÇ¿ÉÄܰüÀ¨µ¥Ôª²âÊÔ(JUnit)¡¢¸²¸ÇÂÊ(Cobertura
)ºÍ¾²Ì¬´úÂë·ÖÎö(FindBugs)¡£·ÖÊýÔ½¸ß£¬±íÃ÷¹¹½¨Ô½Îȶ¨¡£ÏÂͼÖзּ¶·ûºÅ¸ÅÊöÁËÎȶ¨ÐÔµÄÆÀ·Ö·¶Î§¡£Èκι¹½¨×÷ÒµµÄ״̬(×Ü·Ö100)µÍÓÚ80·Ö¾ÍÊDz»Îȶ¨µÄ¡£

ͼ32 ¹¹½¨Îȶ¨ÐÔ½çÃæ
ÄãÒ²¿ÉÒÔÔÚµ±Ç°JobÖ÷½çÃæÉÏ¿´µ½Ëü£¬ÈçÏÂͼ×óϲ¿·Ö

ͼ33 ÏîÄ¿Ö÷½çÃæ
µ±Ç°×÷ÒµÖ÷Ò³ÉÏ»¹°üº¬ÁËһЩÓÐȤµÄÌõÄ¿¡£×ó²àÀ¸µÄÁ´½ÓÖ÷Òª¿ØÖÆJobµÄÅäÖá¢É¾³ý×÷Òµ¡¢¹¹½¨×÷Òµ¡£Óұ߲¿·ÖµÄÁ´½ÓÖ¸Ïò×îеÄÏîÄ¿±¨¸æºÍ¹¹¼þ¡£
ͨ¹ýµã»÷¹¹½¨ÀúÊ·£¨Build History£©ÖÐij¸ö¾ßÌåµÄ¹¹½¨Á´½Ó£¬Äú¾ÍÄÜÌø×ªµ½JenkinsΪÕâ¸ö¹¹½¨ÊµÀý¶ø´´½¨µÄ¹¹½¨Ö÷Ò³ÉÏ¡£ÈçÏÂͼ

ͼ34 ¹¹½¨ÀúÊ·½çÃæ
Èç¹ûÄãÏëͨ¹ýÊÓͼÊä³ö½çÃæÀ´¼à¿Øµ±Ç°ÈÎÎñµÄ½øÕ¹Çé¿ö¡£Äã¿ÉÒÔµ¥»÷Console Output£¨¿ØÖÆÌ¨Êä³ö£©¡£Èç¹û¹¤×÷ÒÑÍê³É£¬Õ⽫ÏÔʾ¹¹½¨½Å±¾²úÉúµÄ¾²Ì¬Êä³ö£»Èç¹û×÷ÒµÈÔÈ»ÔÚÔËÐÐÖУ¬Jenkins½«²»¶ÏË¢ÐÂÍøÒ³µÄÄÚÈÝ£¬ÒÔ±ãÄú¿ÉÒÔ¿´µ½ËüÔËÐÐʱµÄÊä³ö¡£ÈçÏÂͼ£º

ͼ35 ¿ØÖÆÌ¨Êä³ö½çÃæ
4 Jenkins²å¼þ
´ÓJenkinsÏÖÓеŦÄÜÀ©Õ¹»ò¿ª·¢ÕßÃÇΪJenkinsÌṩµÄй¦Äܶ¼¿ÉÒÔ³ÆÖ®ÎªJenkins²å¼þ¡£ÓÐЩ²å¼þ¿ÉÒÔÎÞ·ìÌí¼Óµ½ÄúµÄ¹¹½¨¹ý³Ì£¬¶øÆäËü£¬ÖîÈç³ýCVSºÍSubversionµÄSCM²å¼þÔòÐèÒªÔ´´úÂë¿ØÖÆÏµÍ³µÄÖ§³Ö¡£
4.1 Jenkins²å¼þ°²×°
Jenkins ²å¼þ¹ÜÀíÆ÷ÔÊÐíÄú°²×°ÐµIJå¼þ£¬ºÍ¸üÐÂÄúJenkins·þÎñÆ÷ÉϵIJå¼þ¡£¹ÜÀíÕß½«Á¬½Óµ½Áª»ú×ÊÁϿ⣬¼ìË÷¿ÉÓõĺÍÒѸüеIJå¼þ¡£Èç¹ûÄúµÄJenkins·þÎñÆ÷
ÎÞ·¨Ö±½ÓÁ¬½Óµ½Íⲿ×ÊÔ´£¬Äú¿ÉÒÔ´ÓJenkinsÍøÕ¾ÉÏÏÂÔØ¡£
ÔÚÒÑÔËÐеÄJenkinsÖ÷Ò³ÖУ¬µã»÷×ó²àµÄϵͳ¹ÜÀí¡ª>¹ÜÀí²å¼þ½øÈëÈçϽçÃæ£º

ͼ36 ²å¼þ¹ÜÀí½çÃæ
Ëü°üº¬Ëĸö±êÇ©£º
¸üÐÂ:Çåµ¥ÖÐÁÐʾÁËJenkinsΪijЩ²å¼þËÑË÷µ½ÁË¿ÉÓõĸüС£ÁгöµÄÿ¸ö²å¼þ¿ÉÒÔ±»Ñ¡Ôñ²¢Ó¦ÓøüС£
¿ÉÑ¡°²×°:Çåµ¥ÖÐÁÐʾÁË¿ÉÓÃÓÚ°²×°£¨¶ø²»ÊÇĿǰÒѰ²×°µÄ£©µÄËùÓвå¼þ¡£ÁгöµÄÿ¸ö²å¼þ¶¼¿ÉÒÔ±»Ñ¡Ôñ²¢°²×°¡£
ÒѰ²×°:Çåµ¥ÖÐÁÐʾÁËÒѾ°²×°µÄ²å¼þ¡£
¸ß¼¶:ÔÊÐíÄúͨ¹ýÉ趨HTTP´úÀíµÄ·½Ê½Ê¹JenkinsÓëÔÚÏß²å¼þ¿â½¨Á¢Á¬½Ó¡£´ËÍ⣬»¹ÌṩÁËÒ»¸öÉÏ´«É豸£¬¿ÉÒÔ°²×°ÄãÔÚJenkinsÒÔÍâÒÑÏÂÔØµÄÄÇЩ²å¼þ¡£
ÓÉÉÏͼ¿ÉÖª£¬Jenkinsȱʡ¼¯³ÉÁËmaven2²å¼þ£¬²¢ÇÒÒ»µ©²å¼þÓÐа汾£¬»áÌáʾ¸üÐÂа汾²å¼þ¡£
Èç¹ûÏ밲װеIJå¼þ£¬¿ÉÒÔµã»÷tab·ÖÒ³ÖеĿÉÑ¡²å¼þ¡£ÈçÏÂͼ£º

ͼ37 ¿ÉÑ¡²å¼þ½çÃæ
´Óͼ¿ÉÖª£¬¸÷ÖÖJenkins²å¼þ¸ù¾Ý֮ǰËù¼ÇÊöµÄÀàÐͽøÐзÖÃűðÀà¡£¿É¹´Ñ¡ÈÎÒâÏë°²×°µÄJenkins²å¼þ£¬µã»÷Install
without restart°´Å¥½øÐа²×°¡£°²×°ºó£¬ËùÓвå¼þÒÔhpi×÷Ϊºó׺Ãû·ÅÖÃÔÚpluginsÎļþ¼ÐÏ¡£Èç¹ûÊǸ߼¶Óû§»¹¿ÉÒÔ×ÔÐпª·¢²å¼þ·½±ã¾ßÌåÏîĿʹÓá£
×¢Ò⣺°²×°Íê³ÉºóÐèÒªÖØÆôJenkins²¿ÊðµÄÈÝÆ÷¡£ÕâÑù²ÅÄÜʹÓÃÐÂ×°µÄ²å¼þ¡£
4.2 Jenkins²å¼þ°²×°Ê¾Àý
JenkinsÔËÐÐ×Ô¶¯²¿Êðwar°üµ½servletÈÝÆ÷ÄÚ£¬ÒªÊµÏÖÕâ¸ö¹¦ÄܱØÐë°²×°Ò»¸ö²å¼þ¡£

ͼ38 °²×°²å¼þ½çÃæ
ͼ39 ²å¼þ°²×°½çÃæ
ºÃÁË£¬µ½´ËDeploy Plugin²å¼þ°²×°Íê³É£¡
|