<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marshal&#039;s Blog &#187; hudson</title>
	<atom:link href="http://marshal.easymorse.com/archives/tag/hudson/feed" rel="self" type="application/rss+xml" />
	<link>http://marshal.easymorse.com</link>
	<description>It&#039;s swap of marshal&#039;s memory.</description>
	<lastBuildDate>Mon, 30 Jan 2012 07:03:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ubuntu下tomcat的部署方案</title>
		<link>http://marshal.easymorse.com/archives/1198?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ubuntu%25e4%25b8%258btomcat%25e7%259a%2584%25e9%2583%25a8%25e7%25bd%25b2%25e6%2596%25b9%25e6%25a1%2588</link>
		<comments>http://marshal.easymorse.com/archives/1198#comments</comments>
		<pubDate>Sat, 21 Feb 2009 13:35:07 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/1198</guid>
		<description><![CDATA[如果按照在ubuntu上手工安装tomcat6的方法安装，可以将war部署到tomcat的webapps目录下。这样做的好处是开始简单，因为步骤少，缺点是webapp和tomcat放在一起，升级或者切换tomcat，以及备份等都不是很方便。以下给出一个解决方案，切换tomcat、jvm和更新war都会很方便。 编写tomcat启动脚本： #!/bin/bash # Tomcat auto-start # # description: Auto-starts tomcat # processname: tomcat # pidfile: /var/run/tomcat.pid export JAVA_HOME=/usr/lib/jvm/java-6-sun export CATALINA_HOME=/srv/apache-tomcat case $1 in start) sh $CATALINA_HOME/bin/startup.sh ;; stop) sh $CATALINA_HOME/bin/shutdown.sh ;; restart) sh $CATALINA_HOME/bin/shutdown.sh sh $CATALINA_HOME/bin/startup.sh ;; esac exit 0 JAVA_HOME指向的是符号链接，目前指向/usr/lib/jvm/java-6-sun-1.6.0.10/，如果更换其他jvm，不需要更改上面脚本，只需更改符号链接即可。 同理，tomcat也使用符号链接。 部署war文件，以hudson为例，创建/srv/hudson目录，将war文件复制到该目录下，并在该目录下创建hudson.xml文件： &#60;Context path=&#34;/hudson&#34; docBase=&#34;/srv/hudson/hudson.war&#34;&#62; &#60;/Context&#62; 然后，在tomcat下创建如下目录： sudo mkdir -p /srv/apache-tomcat/conf/Catalina/localhost/ 为hudson.xml在该目录下创建符号链接： sudo [...]]]></description>
			<content:encoded><![CDATA[<p>如果按照<a href="http://marshal.easymorse.com/archives/1100" title="在ubuntu上手工安装tomcat6">在ubuntu上手工安装tomcat6</a>的方法安装，可以将war部署到tomcat的webapps目录下。这样做的好处是开始简单，因为步骤少，缺点是webapp和tomcat放在一起，升级或者切换tomcat，以及备份等都不是很方便。以下给出一个解决方案，切换tomcat、jvm和更新war都会很方便。</p>
<p><span id="more-1198"></span>
<p>编写tomcat启动脚本：</p>
<p>
<div class="wlWriterSmartContent" id="scid:F2210F5F-69EB-4d4c-AFF7-B8A050E9CC72:1d448e0d-90ef-4f38-a5c9-28503c2c61d8" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre  style="width:100%;;">
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><span style="color: #000000;">#</span><span style="color: #000000;">!/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">bash
# Tomcat auto</span><span style="color: #000000;">-</span><span style="color: #000000;">start
#
# description: Auto</span><span style="color: #000000;">-</span><span style="color: #000000;">starts tomcat
# processname: tomcat
# pidfile: </span><span style="color: #000000;">/</span><span style="color: #000000;">var</span><span style="color: #000000;">/</span><span style="color: #000000;">run</span><span style="color: #000000;">/</span><span style="color: #000000;">tomcat.pid

export JAVA_HOME</span><span style="color: #000000;">=/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">lib</span><span style="color: #000000;">/</span><span style="color: #000000;">jvm</span><span style="color: #000000;">/</span><span style="color: #000000;">java</span><span style="color: #000000;">-</span><span style="color: #000000;">6</span><span style="color: #000000;">-</span><span style="color: #000000;">sun
export CATALINA_HOME</span><span style="color: #000000;">=/</span><span style="color: #000000;">srv</span><span style="color: #000000;">/</span><span style="color: #000000;">apache</span><span style="color: #000000;">-</span><span style="color: #000000;">tomcat

</span><span style="color: #0000FF;">case</span><span style="color: #000000;"> $</span><span style="color: #000000;">1</span><span style="color: #000000;"> in
start)
        sh $CATALINA_HOME</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">startup.sh
        ;;
stop)
        sh $CATALINA_HOME</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">shutdown.sh
        ;;
restart)
        sh $CATALINA_HOME</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">shutdown.sh
        sh $CATALINA_HOME</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">startup.sh
        ;;
esac
exit </span><span style="color: #000000;">0</span></div>
</pre>
</div>
<p>JAVA_HOME指向的是符号链接，目前指向/usr/lib/jvm/java-6-sun-1.6.0.10/，如果更换其他jvm，不需要更改上面脚本，只需更改符号链接即可。</p>
<p>同理，tomcat也使用符号链接。</p>
<p>部署war文件，以hudson为例，创建/srv/hudson目录，将war文件复制到该目录下，并在该目录下创建hudson.xml文件：</p>
<p><div class="wlWriterSmartContent" id="scid:F2210F5F-69EB-4d4c-AFF7-B8A050E9CC72:846dd57d-8b29-4d34-bf7e-cfa4fbf43455" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre  style="width:100%;;">
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">Context </span><span style="color: #FF0000;">path</span><span style="color: #0000FF;">=&quot;/hudson&quot;</span><span style="color: #FF0000;"> docBase</span><span style="color: #0000FF;">=&quot;/srv/hudson/hudson.war&quot;</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;">
</span><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">Context</span><span style="color: #0000FF;">&gt;</span></div>
</pre>
</div>
<p>然后，在tomcat下创建如下目录：</p>
<blockquote>
<p><font color="#333333">sudo mkdir -p <br /></font>/srv/apache-tomcat/conf/Catalina/localhost/</p>
</blockquote>
<p>为hudson.xml在该目录下创建符号链接：</p>
<blockquote>
<p>sudo ln -s /srv/hudson/hudson.xml <br />/srv/apache-tomcat/conf/Catalina/localhost/hudson.xml</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/1198/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>集成hudson与trac</title>
		<link>http://marshal.easymorse.com/archives/1149?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e9%259b%2586%25e6%2588%2590hudson%25e4%25b8%258etrac</link>
		<comments>http://marshal.easymorse.com/archives/1149#comments</comments>
		<pubDate>Sun, 18 Jan 2009 18:02:45 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/1149</guid>
		<description><![CDATA[集成hudson与trac的好处是，可以将改动内容有关传票等信息链接到trac的传票页面，包括对源代码的改动等。hudson与trac的集成是通过hudson插件来实现的。 trac插件的安装 通过manage hudson&#62;manage plugins&#62;available，勾选trac plugin并安装。 trac插件的配置和使用 trac插件是针对项目任务的（job），所以要为每一个job设置它对应的trac，在job对应的configure中找到以下条目： 填写trac的url，并选择trac作为仓库浏览器即可。]]></description>
			<content:encoded><![CDATA[<p>集成hudson与trac的好处是，可以将改动内容有关传票等信息链接到trac的传票页面，包括对源代码的改动等。hudson与trac的集成是通过hudson插件来实现的。</p>
<p> <span id="more-1149"></span><br />
<h3>trac插件的安装</h3>
<p>通过manage hudson&gt;manage plugins&gt;available，勾选trac plugin并安装。</p>
<h3>trac插件的配置和使用</h3>
<p>trac插件是针对项目任务的（job），所以要为每一个job设置它对应的trac，在job对应的configure中找到以下条目：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2009/01/kkk.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="303" alt="kkk" src="http://marshal.easymorse.com/wp-content/uploads/2009/01/kkk-thumb.png" width="465" border="0" /></a></p>
<p>填写trac的url，并选择trac作为仓库浏览器即可。 </p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/1149/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hudson认证与授权设置</title>
		<link>http://marshal.easymorse.com/archives/1144?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hudson%25e8%25ae%25a4%25e8%25af%2581%25e4%25b8%258e%25e6%258e%2588%25e6%259d%2583%25e8%25ae%25be%25e7%25bd%25ae</link>
		<comments>http://marshal.easymorse.com/archives/1144#comments</comments>
		<pubDate>Sun, 18 Jan 2009 16:24:08 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/1144</guid>
		<description><![CDATA[在hudson的安装和使用中介绍了hudson基本使用。现在需要将hudson暴露到互联网中，需要设置认证。之前看的是hudson比较早的书（O&#8217;Reilly Java Power Tools），认证只有tomcat（tomcat-users.xml）和ldap方式，授权也比较简单。在使用Hudson 1.273时，发现情况已经得到改善。 hudson提供了自己的数据库方式管理认证数据，支持用户在线注册（sign up）。授权也支持比较复杂的策略： 授权可以基于项目（Project-based Matrix Authorization Strategy）。即为每个项目设置具体的权限，应该能满足复杂项目授权需求了。 设置的方式是，先如上图所示，在hudson/manage hudson中设置全局的授权矩阵。然后再进入项目的configure， 在如下矩阵中设置授权： 全局授权和项目授权的关系是，项目授权优先与全局授权。如果全局授权而项目未授权，视为未授权。使用二者的办法可以概括为： 可给用户打开全部的全局授权，然后通过项目授权加以限制。]]></description>
			<content:encoded><![CDATA[<p>在<a href="http://marshal.easymorse.com/archives/1139" title="hudson的安装和使用">hudson的安装和使用</a>中介绍了hudson基本使用。现在需要将hudson暴露到互联网中，需要设置认证。之前看的是hudson比较早的书（<em>O&#8217;Reilly Java Power Tools</em>），认证只有tomcat（tomcat-users.xml）和ldap方式，授权也比较简单。在使用Hudson 1.273时，发现情况已经得到改善。</p>
<p> <span id="more-1144"></span>
<p>hudson提供了自己的数据库方式管理认证数据，支持用户在线注册（sign up）。授权也支持比较复杂的策略：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2009/01/nn1.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="88" alt="nn1" src="http://marshal.easymorse.com/wp-content/uploads/2009/01/nn1-thumb.png" width="450" border="0" /></a></p>
<p>授权可以基于项目（<em>Project-based Matrix Authorization Strategy</em>）。即为每个项目设置具体的权限，应该能满足复杂项目授权需求了。</p>
<p>设置的方式是，先如上图所示，在hudson/manage hudson中设置全局的授权矩阵。然后再进入项目的configure， 在如下矩阵中设置授权：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2009/01/nn2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="79" alt="nn2" src="http://marshal.easymorse.com/wp-content/uploads/2009/01/nn2-thumb.png" width="450" border="0" /></a></p>
<p>全局授权和项目授权的关系是，项目授权优先与全局授权。如果全局授权而项目未授权，视为未授权。使用二者的办法可以概括为：</p>
<blockquote><p><font color="#333333">可给用户打开全部的全局授权，然后通过项目授权加以限制。</font></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/1144/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hudson的安装和使用</title>
		<link>http://marshal.easymorse.com/archives/1139?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hudson%25e7%259a%2584%25e5%25ae%2589%25e8%25a3%2585%25e5%2592%258c%25e4%25bd%25bf%25e7%2594%25a8</link>
		<comments>http://marshal.easymorse.com/archives/1139#comments</comments>
		<pubDate>Sun, 18 Jan 2009 14:43:20 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/1139</guid>
		<description><![CDATA[hudson简介 hudson是类似CruiseConrol和Continuum的持续集成工具。要求软件项目已经使用了自动构建脚本，比如ant或者maven等。持续集成工具可在此基础上进一步自动化，实现比如定期（比如每日）构建或者由事件触发的构建（比如版本控制器的提交活动）。 hudson的官方网址： https://hudson.dev.java.net/ jboss就是采用hudson持续集成，见： http://hudson.jboss.org/hudson/ hudson安装 下载最新的war版本： https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=2761&#38;expandFolder=2761&#38;folderID=0 复制到tomcat的webapps目录下。 hudson设置 针对tomcat，中文的设置，否则get请求中的中文由于使用默认iso-8859-1而发生错误。server.xml文件： &#60;Connector port=&#34;8080&#34; ... URIEncoding=&#34;UTF-8&#34;/&#62; 设置MAVEN_HOME，通过Manager Hudson&#62;Configure System。 hudson主目录和升级 hudson在当前用户下建立了供它使用的目录，一般在： ~/.hudson hudson因此不需要数据库存储系统状态，也使升级hudson比较容易。升级只需要替换掉webapps目录下的war文件，并删除以前war文件解压缩的目录即可。因为所有配置文件不在war相关路径中。 hudson版本更新十分活跃，这种方式为升级带来便利。 如果tomcat是作为守护进程运行，将无法用到当前用户的目录。需要在tomcat的启动脚本中设置： export HUDSON_HOME=/srv/hudson 持续集成前的准备 持续集成需要自动构建，比如maven或者ant。以下准备了一个最简单的maven2 web项目，并提交到版本控制器中（subversion）。可通过以下链接访问： https://dev.easymorse.com/svn/demos/helloworld/ 用户名和密码：guest/password 创建maven构建任务 点击new job链接，输入项目名和项目类型，因为项目是maven的，要选择maven2 project。见： &#160; 下一步的配置部分，必须填写的地方不多，svn项目的url及认证信息，hudson会通过自带的svn客户端checkout代码并完成构建。还有一个就是构建触发的策略，最普通的是定期构建（build periodically），语法和cron类似，这里设置了每天21:40构建一次。另外poll scm可能更常用一些，它和定期构建配置方式类似，不同的是它将检查版本仓库中代码是否变化，只有变化才做构建。 查看构建结果 创建任务后，在hudson首页上可看到列表中的该项目： 点击该项目任务链接，会看到该项目所有构建的相关信息： 点击workspace，可以浏览该项目在svn上的源代码，或者下载zip打包的源代码。点击permalinks下的构建链接，可以下载该构建的生成文件，在本例的web项目，是war文件。 高级功能 以上是一个简单的项目示例。hudson支持一些这里没有涉及到的高级功能： 测试代码的统计结果报告； 为指定的构建版本打标签（原来都用subclipse打标签，现在用这个，更直观）； 管理用户信息； 认证与安全（这方面hudson实现的过于简单）； 和问题管理工具比如JIRA和trac等集成，生成版本的修改报告； 具有插件机制，可以通过插件增加功能，比如和jira、trac等集成，还有检查代码风格和检查代码质量等的插件。]]></description>
			<content:encoded><![CDATA[</p>
<h3>hudson简介</h3>
<p>hudson是类似CruiseConrol和Continuum的持续集成工具。要求软件项目已经使用了自动构建脚本，比如ant或者maven等。持续集成工具可在此基础上进一步自动化，实现比如定期（比如每日）构建或者由事件触发的构建（比如版本控制器的提交活动）。</p>
<p> <span id="more-1139"></span>
<p>hudson的官方网址：</p>
<blockquote><p><a href="https://hudson.dev.java.net/">https://hudson.dev.java.net/</a></p>
</blockquote>
<p>jboss就是采用hudson持续集成，见：</p>
<blockquote><p><a href="http://hudson.jboss.org/hudson/">http://hudson.jboss.org/hudson/</a></p>
</blockquote>
<h3>hudson安装</h3>
<p>下载最新的war版本：</p>
<blockquote><p><a href="https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=2761&amp;expandFolder=2761&amp;folderID=0">https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=2761&amp;expandFolder=2761&amp;folderID=0</a></p>
</blockquote>
<p>复制到tomcat的webapps目录下。</p>
<h3>hudson设置</h3>
<p>针对tomcat，中文的设置，否则get请求中的中文由于使用默认iso-8859-1而发生错误。server.xml文件：</p>
<blockquote><pre>&lt;Connector port=&quot;8080&quot; ... URIEncoding=&quot;UTF-8&quot;/&gt;</pre>
</blockquote>
<pre>设置MAVEN_HOME，通过Manager Hudson&gt;Configure System。</pre>
<h3>hudson主目录和升级</h3>
<p>hudson在当前用户下建立了供它使用的目录，一般在：</p>
<blockquote>
<p><font color="#333333">~/.hudson</font></p>
</blockquote>
<p>hudson因此不需要数据库存储系统状态，也使升级hudson比较容易。升级只需要替换掉webapps目录下的war文件，并删除以前war文件解压缩的目录即可。因为所有配置文件不在war相关路径中。</p>
<p>hudson版本更新十分活跃，这种方式为升级带来便利。</p>
<p>如果tomcat是作为守护进程运行，将无法用到当前用户的目录。需要在tomcat的启动脚本中设置：</p>
<blockquote>
<p>export HUDSON_HOME=/srv/hudson</p>
</blockquote>
<h3>持续集成前的准备</h3>
<p>持续集成需要自动构建，比如maven或者ant。以下准备了一个最简单的maven2 web项目，并提交到版本控制器中（subversion）。可通过以下链接访问：</p>
<blockquote>
<p><a href="https://dev.easymorse.com/svn/demos/helloworld/">https://dev.easymorse.com/svn/demos/helloworld/</a></p>
</blockquote>
<p>用户名和密码：guest/password</p>
<h3>创建maven构建任务</h3>
<p>点击new job链接，输入项目名和项目类型，因为项目是maven的，要选择maven2 project。见：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2009/01/hh1.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="283" alt="hh1" src="http://marshal.easymorse.com/wp-content/uploads/2009/01/hh1-thumb.png" width="387" border="0" /></a>&#160;</p>
<p>下一步的配置部分，必须填写的地方不多，svn项目的url及认证信息，hudson会通过自带的svn客户端checkout代码并完成构建。还有一个就是构建触发的策略，最普通的是定期构建（build periodically），语法和cron类似，这里设置了每天21:40构建一次。另外poll scm可能更常用一些，它和定期构建配置方式类似，不同的是它将检查版本仓库中代码是否变化，只有变化才做构建。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2009/01/hh2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="314" alt="hh2" src="http://marshal.easymorse.com/wp-content/uploads/2009/01/hh2-thumb.png" width="450" border="0" /></a></p>
<h3>查看构建结果</h3>
<p>创建任务后，在hudson首页上可看到列表中的该项目：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2009/01/hh3.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="86" alt="hh3" src="http://marshal.easymorse.com/wp-content/uploads/2009/01/hh3-thumb.png" width="450" border="0" /></a></p>
<p>点击该项目任务链接，会看到该项目所有构建的相关信息：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2009/01/hh4.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="235" alt="hh4" src="http://marshal.easymorse.com/wp-content/uploads/2009/01/hh4-thumb.png" width="260" border="0" /></a> </p>
<p>点击workspace，可以浏览该项目在svn上的源代码，或者下载zip打包的源代码。点击permalinks下的构建链接，可以下载该构建的生成文件，在本例的web项目，是war文件。</p>
<h3>高级功能</h3>
<p>以上是一个简单的项目示例。hudson支持一些这里没有涉及到的高级功能：</p>
<ol>
<li>测试代码的统计结果报告；</li>
<li>为指定的构建版本打标签（原来都用subclipse打标签，现在用这个，更直观）；</li>
<li>管理用户信息；</li>
<li>认证与安全（这方面hudson实现的过于简单）；</li>
<li>和问题管理工具比如JIRA和trac等集成，生成版本的修改报告；</li>
<li>具有插件机制，可以通过插件增加功能，比如和jira、trac等集成，还有检查代码风格和检查代码质量等的插件。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/1139/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

