﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-光子CI之旅-随笔分类-Continuous Integration</title><link>http://www.blogjava.net/kuuyee/category/40201.html</link><description>while (产品+需求+设计+开发+测试+部署+发布 == doing) 
{ 
  CI 
}</description><language>zh-cn</language><lastBuildDate>Mon, 06 May 2013 16:51:43 GMT</lastBuildDate><pubDate>Mon, 06 May 2013 16:51:43 GMT</pubDate><ttl>60</ttl><item><title>Jenkins文档翻译(2)-构建一个Maven2项目</title><link>http://www.blogjava.net/kuuyee/archive/2013/05/06/398854.html</link><dc:creator>kuuyee</dc:creator><author>kuuyee</author><pubDate>Mon, 06 May 2013 05:15:00 GMT</pubDate><guid>http://www.blogjava.net/kuuyee/archive/2013/05/06/398854.html</guid><wfw:comment>http://www.blogjava.net/kuuyee/comments/398854.html</wfw:comment><comments>http://www.blogjava.net/kuuyee/archive/2013/05/06/398854.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/kuuyee/comments/commentRss/398854.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kuuyee/services/trackbacks/398854.html</trackback:ping><description><![CDATA[<div style="width: 1170px; margin-right: auto; margin-left: auto; color: #4e443c; font-family: adelle, Georgia, 'Times New Roman', serif; line-height: 20px;"><div style="margin-left: -30px;"><div style="float: left; min-height: 1px; margin-left: 30px; width: 870px;"><div style="background-color: #fcfcfa; border: 1px solid #e2e0d8; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; padding: 22px; margin-bottom: 35px;"><h2><span style="font-size: 14px;">原文链接:&nbsp;</span><a href="https://wiki.jenkins-ci.org/display/JENKINS/Building+a+maven2+project" style="font-size: 14px; color: #0088cc; text-decoration: none;">https://wiki.jenkins-ci.org/display/JENKINS/Building+a+maven2+project</a></h2><div><p style="margin: 0px 0px 10px;">Jenkins提供一个专注于Maven2项目的Job类型。这种Job类型深度集成Maven2并提供如下优于free-style software project Job类型的特性：</p></div><div><ul style="padding: 0px; margin: 0px 0px 10px 25px;"><li><p style="margin: 0px 0px 10px;">Jenkins从Maven POM中获取更多信息来辅助构建工作，这样就大大减少了Job的配置工作。</p></li><li><p style="margin: 0px 0px 10px;">Jenkins监听Maven执行过程来决定如何处理Job。例如，Jenkins会在Maven测试阶段自动记录JUnit报告。如果你正在运行javadoc目标，Jenkins会自动记录javadoc。</p></li></ul></div><div><p style="margin: 0px 0px 10px;">因此你只需要为Job配置SCM信息和指定运行Maven项目的哪个目标就可以了，其它的Jenkins会帮你决定如何去做。</p></div><div><div></div></div><div><blockquote style="padding: 0px 0px 0px 15px; margin: 0px 0px 20px; border-left-width: 5px; border-left-color: #eeeeee;">&nbsp;<strong>TODO</strong>&nbsp;谈论Maven modules在子项目中的表现，还有构建编号在子项目中是如何控制的。带有截屏。</blockquote><div></div></div><div><h4>用模块依赖链接自动构建</h4><div><p style="margin: 0px 0px 10px;">Jenkins从你的POM模型中读取项目依赖，如果这个依赖已经是Jenkins内的一个构建，那么Jenkins会自动的触发这个构建。Jenkins能够识别POM内所用类型的依赖：</p></div><div><ul style="padding: 0px; margin: 0px 0px 10px 25px;"><li><p style="margin: 0px 0px 10px;">父级POM</p></li><li><p style="margin: 0px 0px 10px;">&lt;dependencies&gt;部分</p></li><li><p style="margin: 0px 0px 10px;">&lt;extensions&gt;部分</p></li><li><p style="margin: 0px 0px 10px;">&lt;reporting&gt;部分</p></li></ul></div><div><p style="margin: 0px 0px 10px;">这个处理过程取决于版本和账户，因为在你的项目中有很多版本/分支，Jenkins要正确的决定如何处理依赖。</p></div></div><div><h4>Maven集成插件</h4><div><p style="margin: 0px 0px 10px;">Jenkins的Maevn2项目类型包含一个Maven集成插件，它已经绑定在Jenkins发行版本中。它会列在可用插件列表中，当插件版本低于Jenkins当前版本时，推荐你升级Maven集成插件。虽然它是一个插件，但是它会作为Jenkins核心的一部分进行开发、测试和发布。</p></div></div><p style="margin: 0px 0px 10px;"></p><div>2013-05-06</div></div></div></div></div><img src ="http://www.blogjava.net/kuuyee/aggbug/398854.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kuuyee/" target="_blank">kuuyee</a> 2013-05-06 13:15 <a href="http://www.blogjava.net/kuuyee/archive/2013/05/06/398854.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转载)CentOS中简单用yum升级 Python 至2.6</title><link>http://www.blogjava.net/kuuyee/archive/2011/10/08/360206.html</link><dc:creator>kuuyee</dc:creator><author>kuuyee</author><pubDate>Sat, 08 Oct 2011 09:26:00 GMT</pubDate><guid>http://www.blogjava.net/kuuyee/archive/2011/10/08/360206.html</guid><wfw:comment>http://www.blogjava.net/kuuyee/comments/360206.html</wfw:comment><comments>http://www.blogjava.net/kuuyee/archive/2011/10/08/360206.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/kuuyee/comments/commentRss/360206.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kuuyee/services/trackbacks/360206.html</trackback:ping><description><![CDATA[<div><a href="http://vpshello.com/upgrade-python-to-26-with-yum/">http://vpshello.com/upgrade-python-to-26-with-yum/<br /><span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Microsoft YaHei', Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; -webkit-text-decorations-in-effect: none; background-color: #ffffff; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">写了不少VPS评测，今天发个简单的技术帖。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">CentOS 在当前最新的 5.6 版中，其 python 的版本依然比较落后，还是古老的 2.4。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">但是有些程序需要 2.6 才跑得起来，编译安装的话，又太麻烦，而且不适合菜鸟使用。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">下面就给出使用 yum 升级 python 至 2.6 的简单方案。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "><span id="more-173" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "></span></p><div id="codeSnippetWrapper" style="margin-top: 20px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-color: silver; border-bottom-style: solid; text-align: left; border-left-color: silver; border-left-style: solid; line-height: 12pt; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; overflow-x: auto; overflow-y: auto; border-top-color: silver; border-top-style: solid; cursor: text; border-right-color: silver; border-right-style: solid; background-position: initial initial; background-repeat: initial initial; "><div id="codeSnippet" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; "><pre style="margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; background-position: initial initial; background-repeat: initial initial; "><span id="lnum1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #606060; background-position: initial initial; background-repeat: initial initial; ">   1:</span> rpm -Uvh http:<span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #008000; background-position: initial initial; background-repeat: initial initial; ">//download.fedora.redhat.com/pub/epel/5Server/i386/epel-release-5-4.noarch.rpm</span></pre><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "></p><pre style="margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; background-position: initial initial; background-repeat: initial initial; "><span id="lnum2" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #606060; background-position: initial initial; background-repeat: initial initial; ">   2:</span> yum install libffi -y</pre><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "></p><pre style="margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; background-position: initial initial; background-repeat: initial initial; "><span id="lnum3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #606060; background-position: initial initial; background-repeat: initial initial; ">   3:</span> yum install python26 -y</pre><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "></p><pre style="margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; background-position: initial initial; background-repeat: initial initial; "><span id="lnum4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #606060; background-position: initial initial; background-repeat: initial initial; ">   4:</span> rm -f /usr/bin/python</pre><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "></p><pre style="margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; background-position: initial initial; background-repeat: initial initial; "><span id="lnum5" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #606060; background-position: initial initial; background-repeat: initial initial; ">   5:</span> ln -s /usr/bin/python26 /usr/bin/python</pre><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "></p></div></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">如果是 64 位的 CentOS，则将上述第一句代码中的 i386 改为 x86_64 即可。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">运行完毕后，此时系统默认的 python 已经是 2.6 版了。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">然而，yum 是基于 python2.4 的，因此会出现故障。解决方法也很简单：</p><div id="codeSnippetWrapper" style="margin-top: 20px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-color: silver; border-bottom-style: solid; text-align: left; border-left-color: silver; border-left-style: solid; line-height: 12pt; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; overflow-x: auto; overflow-y: auto; border-top-color: silver; border-top-style: solid; cursor: text; border-right-color: silver; border-right-style: solid; background-position: initial initial; background-repeat: initial initial; "><div id="codeSnippet" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; "><pre style="margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; background-position: initial initial; background-repeat: initial initial; "><span id="lnum1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #606060; background-position: initial initial; background-repeat: initial initial; ">   1:</span> nano /usr/bin/yum</pre><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "></p></div></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">将第一行末的 python 后加上 2.4，即将第一行改为：</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">#!/usr/bin/python2.4</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">这样，yum 依然使用 python 2.4 环境运行，一切恢复正常。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">此时我们输入 python -V 即可看到当前的 python 版本：</p><div id="codeSnippetWrapper" style="margin-top: 20px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-color: silver; border-bottom-style: solid; text-align: left; border-left-color: silver; border-left-style: solid; line-height: 12pt; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; overflow-x: auto; overflow-y: auto; border-top-color: silver; border-top-style: solid; cursor: text; border-right-color: silver; border-right-style: solid; background-position: initial initial; background-repeat: initial initial; "><div id="codeSnippet" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; "><pre style="margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; background-position: initial initial; background-repeat: initial initial; "><span id="lnum1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #606060; background-position: initial initial; background-repeat: initial initial; ">   1:</span> # python -V</pre><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "></p><pre style="margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 8pt; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f4f4; border-bottom-style: none; text-align: left; line-height: 12pt; border-left-style: none; width: 570px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; overflow-x: visible; overflow-y: visible; background-position: initial initial; background-repeat: initial initial; "><span id="lnum2" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #606060; background-position: initial initial; background-repeat: initial initial; ">   2:</span> Python 2.6.5</pre></div></div></span><br /></a></div><img src ="http://www.blogjava.net/kuuyee/aggbug/360206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kuuyee/" target="_blank">kuuyee</a> 2011-10-08 17:26 <a href="http://www.blogjava.net/kuuyee/archive/2011/10/08/360206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sonar安装笔记</title><link>http://www.blogjava.net/kuuyee/archive/2009/07/23/288062.html</link><dc:creator>kuuyee</dc:creator><author>kuuyee</author><pubDate>Thu, 23 Jul 2009 09:21:00 GMT</pubDate><guid>http://www.blogjava.net/kuuyee/archive/2009/07/23/288062.html</guid><wfw:comment>http://www.blogjava.net/kuuyee/comments/288062.html</wfw:comment><comments>http://www.blogjava.net/kuuyee/archive/2009/07/23/288062.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/kuuyee/comments/commentRss/288062.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kuuyee/services/trackbacks/288062.html</trackback:ping><description><![CDATA[Sonar是开源的代码质量管理平台,它把代码质量相关软件集成到一起统一管理,集成的软件如下:<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">CPD<br />
Checkstyle<br />
Clover<br />
Cobertura<br />
Findbugs<br />
General<br />
Google&nbsp;analytics<br />
PMD<br />
Squid<br />
Surefire</span></div>
<br />
我把安装过程记录下来.<br />
1.环境准备如下<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">ubuntu8</span><span style="color: #000000;">.04</span><span style="color: #000000;"><br />
jdk1</span><span style="color: #000000;">.5</span><span style="color: #000000;"><br />
maven2</span><span style="color: #000000;">.2</span><span style="color: #000000;">(官方要求2</span><span style="color: #000000;">.0</span><span style="color: #000000;">.7以上)<br />
mysql5</span><span style="color: #000000;">.0</span></div>
<br />
2.下载Sonar,到http://sonar.codehaus.org/下载最新版本,目前是1.9.2,下载后解压即可<br />
<br />
3.数据库配置<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">DATABASE</span><span style="color: #000000;">&nbsp;sonar&nbsp;</span><span style="color: #000000; font-weight: bold;">CHARACTER</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">SET</span><span style="color: #000000;">&nbsp;utf8&nbsp;COLLATE&nbsp;utf8_general_ci;<br />
</span><span style="color: #0000ff;">grant</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">all</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">on</span><span style="color: #000000;">&nbsp;sonar.</span><span style="color: #808080;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">to</span><span style="color: #000000;">&nbsp;sonar@</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">%</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;identified&nbsp;</span><span style="color: #0000ff;">by</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">sonar</span><span style="color: #ff0000;">'</span><span style="color: #000000;">;<br />
</span><span style="color: #0000ff;">grant</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">all</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">on</span><span style="color: #000000;">&nbsp;sonar.</span><span style="color: #808080;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">to</span><span style="color: #000000;">&nbsp;sonar</span><span style="color: #008000;">@localhost</span><span style="color: #000000;">&nbsp;identified&nbsp;</span><span style="color: #0000ff;">by</span><span style="color: #000000;">&nbsp;</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">sonar</span><span style="color: #ff0000;">'</span><span style="color: #000000;">;<br />
flush&nbsp;</span><span style="color: #0000ff;">privileges</span><span style="color: #000000;">;</span></div>
官方没有<span style="color: #0000ff;">grant</span>&nbsp;<span style="color: #808080;">all</span>&nbsp;<span style="color: #0000ff;">on</span><span style="color: #000000;">&nbsp;sonar.</span><span style="color: #808080;">*</span>&nbsp;<span style="color: #0000ff;">to</span><span style="color: #000000;">&nbsp;sonar@</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">%</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;identified&nbsp;</span><span style="color: #0000ff;">by</span>&nbsp;<span style="color: #ff0000;">'</span><span style="color: #ff0000;">sonar</span><span style="color: #ff0000;">'</span><span style="color: #000000;">; 如果你想远程发布项目到sonar,那就需要加上这条</span><br />
然后还要更改sonar的配置,在sonar的解压目录下打开conf/sonar.properties,注掉如下内容(如果你没有mysql就可以不改动这个文件,sonar默认使用内嵌数据库derby)<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">#sonar.jdbc.url:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jdbc:derby://localhost:</span><span style="color: #000000;">1527</span><span style="color: #000000;">/sonar</span><span style="color: #008000;">;</span><span style="color: #008000;">create=true</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">#sonar.jdbc.driverClassName:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.derby.jdbc.ClientDriver<br />
#sonar.jdbc.validationQuery:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values(</span><span style="color: #000000;">1</span><span style="color: #000000;">)</span></div>
去掉下面的注释<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">sonar.jdbc.url:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jdbc:mysql://</span><span style="color: #000000;">192.168.1.151</span><span style="color: #000000;">:</span><span style="color: #000000;">3306</span><span style="color: #000000;">/sonar?useUnicode</span><span style="color: #000000;">=</span><span style="color: #000000;">true&amp;characterEncoding</span><span style="color: #000000;">=</span><span style="color: #000000;">utf8<br />
sonar.jdbc.driverClassName:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.mysql.jdbc.Driver<br />
sonar.jdbc.validationQuery:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;</span><span style="color: #000000;">1</span></div>
<br />
Ok,配置已经完成你可以在bin目录项下进入相应平台的子目录,比如我的就是${sonar_home}bin/linux-x86-32,sonar是多平台的,你可以在bin目录下查找你对应的平台,然后执行<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">${sonar_home}bin</span><span style="color: #000000;">/</span><span style="color: #000000;">linux</span><span style="color: #000000;">-</span><span style="color: #000000;">x86</span><span style="color: #000000;">-</span><span style="color: #800000;">32</span><span style="color: #000000;">/</span><span style="color: #000000;">sonar</span><span style="color: #000000;">.</span><span style="color: #000000;">sh&nbsp;start <br />
</span></div>
<br />
启动后访问<a href="http://localhost:9000/" rel="nofollow">http://localhost:9000</a>就可以进入sonar了, 默认管理员用户和密码是admin/admin<br />
<br />
大功告成!<br />
<br />
今天先写到这,后面我会加上如何用maven发布一个项目到sonar上!<br />
<br />
秀几张图来看看<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/kuuyee/sonar01.GIF" height="675" width="971" /><br />
<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/kuuyee/sonar02.GIF" height="209" width="569" /><br />
<br />
<br />
<img src ="http://www.blogjava.net/kuuyee/aggbug/288062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kuuyee/" target="_blank">kuuyee</a> 2009-07-23 17:21 <a href="http://www.blogjava.net/kuuyee/archive/2009/07/23/288062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在国外网站看到的开发环境建议</title><link>http://www.blogjava.net/kuuyee/archive/2009/06/11/281625.html</link><dc:creator>kuuyee</dc:creator><author>kuuyee</author><pubDate>Thu, 11 Jun 2009 13:45:00 GMT</pubDate><guid>http://www.blogjava.net/kuuyee/archive/2009/06/11/281625.html</guid><wfw:comment>http://www.blogjava.net/kuuyee/comments/281625.html</wfw:comment><comments>http://www.blogjava.net/kuuyee/archive/2009/06/11/281625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kuuyee/comments/commentRss/281625.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kuuyee/services/trackbacks/281625.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt">在国外网站看到的开发环境建议，记录下来，有空研究一下！<br />
<br />
</span></p>
<li>eclipse as IDE
<li>mercurial for source code management
<li>merclipse mercurial eclipse plugin <a href="http://goldenhammers.com/merclipse/" rel="nofollow">http://goldenhammers.com/merclipse/</a>
<li>maven for builds (and m2eclipse)
<li>mylyn with bugzilla for issue tracking
<li>tomcat as application server
<li>hudson for continuous integration <a href="https://hudson.dev.java.net/" rel="nofollow">https://hudson.dev.java.net/</a>
<li>reviewboard for code reviews <a href="http://www.review-board.org/" rel="nofollow">http://www.review-board.org/</a>
<li>sonar for code quality metrics <a href="http://sonar.codehaus.org/" rel="nofollow">http://sonar.codehaus.org/</a>
<li>proxmox VE for virtualization <a href="http://pve.proxmox.com/wiki/Main_Page" rel="nofollow">http://pve.proxmox.com/wiki/Main_Page</a> </li>
<img src ="http://www.blogjava.net/kuuyee/aggbug/281625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kuuyee/" target="_blank">kuuyee</a> 2009-06-11 21:45 <a href="http://www.blogjava.net/kuuyee/archive/2009/06/11/281625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>