﻿<?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>IT博客-乐在其中-文章分类-技术知识</title><link>http://www.cnitblog.com/huchangjun1980/category/7098.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 30 Sep 2011 06:16:54 GMT</lastBuildDate><pubDate>Fri, 30 Sep 2011 06:16:54 GMT</pubDate><ttl>60</ttl><item><title>DOS文件与UNIX文件格式差异详解</title><link>http://www.cnitblog.com/huchangjun1980/articles/61522.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Tue, 22 Sep 2009 06:32:00 GMT</pubDate><guid>http://www.cnitblog.com/huchangjun1980/articles/61522.html</guid><wfw:comment>http://www.cnitblog.com/huchangjun1980/comments/61522.html</wfw:comment><comments>http://www.cnitblog.com/huchangjun1980/articles/61522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/huchangjun1980/comments/commentRss/61522.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/huchangjun1980/services/trackbacks/61522.html</trackback:ping><description><![CDATA[<p>工作中，常需要把Linux上的文件拿到Windows下，也常把Windows下的文件拿到Linux下。其中就遇到些文件格式上的问题。今天在网上搜了一些，选了一篇较经典的转载如下：<br>原文名：DOS文件转换成UNIX文件格式详解<br>dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 2532C 字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC],因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误,那么需要把这些dos文件格式转换成unix格式,方法是 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vi dos.txt :set fileformat=unix :w 　　<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样文件就转换成unix格式文件了, 一般在windows机器上编写好了文件传到unix下就可能会出现这样的情况. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用命令:"set ff?&#8221;可以看到dos或unix的字样.用:"set ff=unix"把它强制为unix格式，也可以用sed 这样的工具来做: "sed 's/^M//' filename &gt; tmp_filename" 其中^M是同时Ctrl+V+M按出来的，表示回车。其它&#8220;怪招&#8221;： <br>1. 使用vi vi dos_file.txt :%s/^M//g 其中^M 必须是同时按 Ctrl+V+M ，表示回车。不是直接输入 ^M ，那没有用的，　:-) 。 <br>2. 使用tr 命令：tr -d "\015" dos_file.txt <br>3. 使用perl cat dos_file.txt | perl -pe '~s/\r//g' &gt; dos_file.txt <br>【VIM】DOS、Mac 和 Unix 文件<br>http://vimcdoc.sourceforge.net/doc/usr_23.html <br>很久以前，老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车，<code class=special>&lt;CR&gt;</code>)，另一个字符把纸上移一行 (称为换行，<code class=special>&lt;LF&gt;</code>)。&nbsp;&nbsp; 当计算机问世以后，存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行尾。UNIX 开发者决定他们可以用 <code class=special>&lt;Line Feed&gt;</code> 一个字符来表示行尾。Apple 开发者规定了用 <code class=special>&lt;CR&gt;</code>。开发 MS-DOS (以及微软视窗) 的那些家伙则决定沿用老式的 <code class=special>&lt;CR&gt;</code><code class=special>&lt;LF&gt;</code>。&nbsp;&nbsp; 那意味着，如果你试图把一个文件从一种系统移到另一种系统，那么你就有换行符方面的麻烦。Vim 编辑器自动识别不同文件格式，并且不劳你操心就把事情给办妥了。选项 'fileformats' 包含各种各样的格式，Vim 会在编辑一个新文件之初尝试该选项定义的各种格式。例如，下面这个命令告诉 Vim 先尝试用 UNIX 格式，其次，尝试MS-DOS 格式:<br><code class=example>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :set fileformats=unix,dos</code><br><br>编辑一个文件时，你将<code class=note>注意</code>到 Vim 给出的信息消息报中包括文件所用的格式。如果你编辑的是本地格式文件 (你编辑的文件格式和所用系统一致)，你就不会看到任何格式名。因此在 Unix 系统上编辑一个 Unix 格式文件不会产生任何关于格式的信息。但你若编辑一个 dos 文件，Vim 将这样通知你:<br><code class=section>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "/tmp/test" [dos] 3L，71C </code><br><br>如果是 Mac 文件，你会看到 "[mac]",探测到的文件格式会被存入 'fileformat' 选项。执行下面这个命令可以显示你当前使用的文件格式:<br><code class=example>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :set fileformat?</code><br><br>Vim 能使用的三种格式如下:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code class=special>&lt;LF&gt;</code><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code class=special>&lt;CR&gt;</code><code class=special>&lt;LF&gt;</code><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mac&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code class=special>&lt;CR&gt;</code><br><br><br>使 用 MAC 格 式<br><br>在 Unix 上，<code class=special>&lt;LF&gt;</code> 用于分行。但 <code class=special>&lt;CR&gt;</code> 字符混在文本行中间也非罕见。这种情况碰巧经常发生在 Vi (和 Vim) 脚本内。&nbsp;&nbsp; 在采用 <code class=special>&lt;CR&gt;</code> 作为换行符的 Macintosh 上，<code class=special>&lt;LF&gt;</code> 字符也有可能混在文本行中间。 结果，很难 100% 肯定一个同时包含 <code class=special>&lt;CR&gt;</code> 和 <code class=special>&lt;LF&gt;</code> 的文件究竟是 Mac 还是 Unix 格式。所以，Vim 假设你一般不会在 Unix 上编辑一个 Mac 文件，所以干脆对这种文件格式不作检查。果真要检查此种格式，就把 "mac" 加入 'fileformats':<br><code class=example>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :set fileformats+=mac</code><br><br>然后 Vim 就会猜测文件格式。要当心， Vim 可能会猜错的。<br><br>强 制 格 式<br><br>如果你用往日美好的 Vi 来尝试编辑一个采用 MS-DOS 格式的文件，你将会发现每一行的末尾有个 ^M 字符。(^M 就是 <code class=special>&lt;CR&gt;</code>)。而 Vim 的自动探测功能就避免了这个问题。莫非你确实要按那个样子来编辑这个文件吗？那么你需要强制 Vim 忽略文件格式而使用你指定的格式:<br><code class=example>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :edit ++ff=unix file.txt</code><br><br>字符串 "++" 告诉 Vim 后面跟的是选项名，以取代其默认值。但仅作用于这一个命令。"++ff" 用于 'fileformat' 选项。你也可以用 "++ff=mac" 或 "++ff=dos"。这样用法并非适用于任意选项，目前 Vim 仅仅实现了 "++ff" 和 "++enc"。用全称"++fileformat" 和 "++encoding" 也行。<br><br>转 换<br><br>你可以用 'fileformat' 选项把文件从一种格式转换为另一种。例如，假定你有个名为README.TXT 的 MS-DOS 文件，你要把它转换成 UNIX 格式。首先编辑这个采用 MS-DOS格式的文件:<br><code class=example>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vim README.TXT</code><br><br>Vim 将识别出那是一个 dos 格式文件。现在把这个文件的格式改为 UNIX:<br><code class=example>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :set fileformat=unix</code><br><code class=example>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :write</code><br><br>这个文件就以 Unix 格式存盘了。</p>
<img src ="http://www.cnitblog.com/huchangjun1980/aggbug/61522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/huchangjun1980/" target="_blank">小胡子</a> 2009-09-22 14:32 <a href="http://www.cnitblog.com/huchangjun1980/articles/61522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AIX5.3+weblogic92性能不如普通PC的真正原因找到了</title><link>http://www.cnitblog.com/huchangjun1980/articles/49362.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Mon, 22 Sep 2008 07:37:00 GMT</pubDate><guid>http://www.cnitblog.com/huchangjun1980/articles/49362.html</guid><wfw:comment>http://www.cnitblog.com/huchangjun1980/comments/49362.html</wfw:comment><comments>http://www.cnitblog.com/huchangjun1980/articles/49362.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/huchangjun1980/comments/commentRss/49362.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/huchangjun1980/services/trackbacks/49362.html</trackback:ping><description><![CDATA[今天帮基金项目组解决weblogic启动error问题时，无意在网上看到一篇AIX+WEBLOGIC性能诊断的文章，终于了解为什么我们之前在aix做性能测试不如普通pc的真正原因：<br><br>
<table style="WIDTH: 1034px; BORDER-COLLAPSE: collapse; HEIGHT: 74px; BACKGROUND-COLOR: #ffff99" cellSpacing=0 cellPadding=3 border=1>
    <tbody>
        <tr>
            <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #0000ff">&nbsp;&nbsp;由于应用配置了IBM的64位JDK，而WebLogic缺省是32位的Native IO库，导致没有使用Native IO，实际上还在用的Java I/O（这一点在上面的日志中就可以看出来），而我们一直以为系统是运行在Native IO模式下，因此性能受到很大影响（这样至少有30%以上的性能影响）。</span></td>
        </tr>
    </tbody>
</table>
<br><font color=#0000ff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解决办法：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1）找到weblogic的64位的native io包libmuxer.so配置到系统lib路径中。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2）</font><span style="COLOR: #0000ff">Java虚拟机存在问题，建议升级JDK及相关补丁，/usr/java5_64/jre/bin/libj9gc23.so<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个文件中ibm的jdk1.5.0的初始版本中是存在bug的需要打一个补丁。</span>
<img src ="http://www.cnitblog.com/huchangjun1980/aggbug/49362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/huchangjun1980/" target="_blank">小胡子</a> 2008-09-22 15:37 <a href="http://www.cnitblog.com/huchangjun1980/articles/49362.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle10G下清除用户下的所有对象【转载】</title><link>http://www.cnitblog.com/huchangjun1980/articles/46007.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Fri, 27 Jun 2008 02:58:00 GMT</pubDate><guid>http://www.cnitblog.com/huchangjun1980/articles/46007.html</guid><wfw:comment>http://www.cnitblog.com/huchangjun1980/comments/46007.html</wfw:comment><comments>http://www.cnitblog.com/huchangjun1980/articles/46007.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/huchangjun1980/comments/commentRss/46007.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/huchangjun1980/services/trackbacks/46007.html</trackback:ping><description><![CDATA[一、执行这样一个存储过程<br>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: rgb(230,230,230) 0% 50%; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align=top>DECLARE<br>TYPE name_list IS TABLE OF VARCHAR2(40);<br>TYPE type_list IS TABLE OF VARCHAR2(20);<br><br>Tab_name name_list:=name_list();<br>Tab_type type_list:=type_list();<br><br>sql_str VARCHAR2(500);<br>BEGIN<br>sql_str := 'select uo.object_name,uo.object_type from user_objects uo where uo.object_type not in(''INDEX'',''LOB'') and uo.object_name not like ''BIN%''&nbsp; order by uo.object_type desc';<br>EXECUTE IMMEDIATE sql_str BULK COLLECT INTO tab_name,tab_type;<br>FOR i IN Tab_name.FIRST.. Tab_name.LAST LOOP<br>if Tab_type(i) = 'TABLE'<br>&nbsp; then<br>&nbsp;&nbsp;&nbsp; sql_str := 'DROP ' || Tab_type(i) || ' ' || Tab_name(i) || ' cascade constraint';<br>&nbsp; else<br>&nbsp;&nbsp;&nbsp; sql_str := 'DROP ' || Tab_type(i) || ' ' || Tab_name(i) ;<br>end if;<br>dbms_output.put_line(sql_str);<br>EXECUTE IMMEDIATE sql_str;<br><br>END LOOP;<br>END;<br><span style="COLOR: rgb(0,0,0)"></div>
</div>
<br></span><span style="COLOR: rgb(0,0,0)">二、清除10G的垃圾回收站。<br>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: rgb(230,230,230) 0% 50%; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><font size=+0><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,0)">purge&nbsp;recyclebin;</span></font></div>
</div>
<br></span>
<img src ="http://www.cnitblog.com/huchangjun1980/aggbug/46007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/huchangjun1980/" target="_blank">小胡子</a> 2008-06-27 10:58 <a href="http://www.cnitblog.com/huchangjun1980/articles/46007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决jsf 上传文件过大会没有错误提示</title><link>http://www.cnitblog.com/huchangjun1980/articles/45338.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Tue, 10 Jun 2008 13:52:00 GMT</pubDate><guid>http://www.cnitblog.com/huchangjun1980/articles/45338.html</guid><wfw:comment>http://www.cnitblog.com/huchangjun1980/comments/45338.html</wfw:comment><comments>http://www.cnitblog.com/huchangjun1980/articles/45338.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/huchangjun1980/comments/commentRss/45338.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/huchangjun1980/services/trackbacks/45338.html</trackback:ping><description><![CDATA[由于上传文件过大会没有错误提示,绕了一大圈，还使用AOP 进行异常捕获，发现还是行不通！最后搜索发现只有修改<br>org.apache.myfaces.webapp.filter.MultpartRequestWrapper类,添加了对FileUploadBase.SizeLimitExceededException异常处理，这个方法最直接有效<br>修改部分的MultpartRequestWrapper<br>
<table style="WIDTH: 320px; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=3 border=1>
    <tbody>
        <tr>
            <td><span style="COLOR: rgb(0,0,255)">try</span><span id=_3_79_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">...</span><span id=_3_79_Open_Text><span style="COLOR: rgb(0,0,0)">{<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requestParameters&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;fileUpload.parseRequest(request);<br><img id=_133_662_Open_Image onclick="this.style.display='none'; document.getElementById('_133_662_Open_Text').style.display='none'; document.getElementById('_133_662_Closed_Image').style.display='inline'; document.getElementById('_133_662_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=_133_662_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_133_662_Closed_Text').style.display='none'; document.getElementById('_133_662_Open_Image').style.display='inline'; document.getElementById('_133_662_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">catch</span><span style="COLOR: rgb(0,0,0)">&nbsp;(FileUploadBase.SizeLimitExceededException&nbsp;e)&nbsp;</span><span id=_133_662_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">...</span><span id=_133_662_Open_Text><span style="COLOR: rgb(0,0,0)">{<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top><br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&nbsp;TODO:&nbsp;find&nbsp;a&nbsp;way&nbsp;to&nbsp;notify&nbsp;the&nbsp;user&nbsp;about&nbsp;the&nbsp;fact&nbsp;that&nbsp;the&nbsp;uploaded&nbsp;file&nbsp;exceeded&nbsp;size&nbsp;limit</span><span style="COLOR: rgb(0,128,0)"><br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: rgb(0,0,0)"><br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,0,255)">if</span><span style="COLOR: rgb(0,0,0)">(log.isInfoEnabled())<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">user&nbsp;tried&nbsp;to&nbsp;upload&nbsp;a&nbsp;file&nbsp;that&nbsp;exceeded&nbsp;file-size&nbsp;limitations.</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,e);<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top><br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requestParameters&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;Collections.EMPTY_LIST;<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: rgb(255,102,0)">FacesMessage&nbsp;message&nbsp;</span></span><span style="COLOR: rgb(255,102,0)">=&nbsp;new&nbsp;FacesMessage(<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FacesMessage.SEVERITY_ERROR,<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"文件超出指定大小","文件超出指定大小");<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FacesContext.getCurrentInstance().addMessage(<br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;null</span><span style="COLOR: rgb(0,0,0)"><span style="COLOR: rgb(255,102,0)">,&nbsp;message);</span><br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align=top><br><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cnitblog.com/huchangjun1980/aggbug/45338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/huchangjun1980/" target="_blank">小胡子</a> 2008-06-10 21:52 <a href="http://www.cnitblog.com/huchangjun1980/articles/45338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java5 unix/linux 中文字体配置说明</title><link>http://www.cnitblog.com/huchangjun1980/articles/42859.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Mon, 28 Apr 2008 03:04:00 GMT</pubDate><guid>http://www.cnitblog.com/huchangjun1980/articles/42859.html</guid><wfw:comment>http://www.cnitblog.com/huchangjun1980/comments/42859.html</wfw:comment><comments>http://www.cnitblog.com/huchangjun1980/articles/42859.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/huchangjun1980/comments/commentRss/42859.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/huchangjun1980/services/trackbacks/42859.html</trackback:ping><description><![CDATA[<p>我们项目经常会发现在Linux下（目前是在AX unix下），java应用程序的中文会变成一个一个的&#8220;口&#8221;字，这样会给我们的使用带来很多的困扰。但是我们又不愿意放弃Linux和java的便捷。<br>怎么来解决这个问题呢？<br><br>其实，要解决这个问题也挺简单。<br><br>咱们首先来说说产生这个问题的原因。java程序启动的时候会去在$JAVA_HOME/jre/lib/fonts目录下寻找相应的字体来显示。由于JDK默认没有中文字体，所以我们需要手工的来设置一下，让java应用程序能够找到相应的中文字体。这样就能够解决问题了<br><br>基本步骤如下：<br>1)cd $JAVA_HOME/jre/lib/fonts<br>2)mkdir fallback<br>3)cp xxx.ttf fallback&nbsp;&nbsp; &nbsp;#xxx.ttf代表你想要的中文字体文件<br><br>其实，我们可以一条命令解决这个问题。将Linux系统的字体目录作为JDK下面的一个字体目录连接。<br><br>ln -s $FONTS_PATH/FONT_DIR $JAVA_HOME/jre/lib/fonts/fallback<br><br>你在打开你的java应用程序就会看到久违的中文了。<br><br>此解决方案在weblogic重启后发现不行了，再重启也不好用！于是我又去网上找到了其他的解决方案，方案如下：</p>
<div class=t_msgfont id=message5459375>使用jfreechart显示中文为方框，原因是aix5.3没有truetype字体。<br>aix平台中文TrueType字体配置<br>第一步：<br>进入 /usr/java14/jre/lib 目录，备份现有的 font.properties 文件，然后用<br>font.properties.zh_CN.Redhat 覆盖 font.properties 文件。<br>当前的环境设置 LANG=C<br>第二步：<br>font.properites 文件的最后一行直接指出了字体文件的位置为 <br><br>/usr/share/fonts/zh_CN/TrueType/zysong.ttf<br>现在需要准备这个字体文件。<br>把redhat 的 /usr/share/fonts/zh_CN/TrueType/ 目录打包为 font.tar.gz<br><br>第三步:<br>把 font.tar.gz 拷贝到aix平台，解压缩到相同的目录。<br><br>第四步：<br>重新启动weblogic，jfreechart显示正常。</div>
<p><br></p>
<img src ="http://www.cnitblog.com/huchangjun1980/aggbug/42859.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/huchangjun1980/" target="_blank">小胡子</a> 2008-04-28 11:04 <a href="http://www.cnitblog.com/huchangjun1980/articles/42859.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>持续集成工具cruisecontrol2.7配置</title><link>http://www.cnitblog.com/huchangjun1980/articles/42474.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Thu, 24 Apr 2008 02:40:00 GMT</pubDate><guid>http://www.cnitblog.com/huchangjun1980/articles/42474.html</guid><wfw:comment>http://www.cnitblog.com/huchangjun1980/comments/42474.html</wfw:comment><comments>http://www.cnitblog.com/huchangjun1980/articles/42474.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/huchangjun1980/comments/commentRss/42474.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/huchangjun1980/services/trackbacks/42474.html</trackback:ping><description><![CDATA[<p align=left>持续集成的概念<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;持续集成是&#8220;极限编程&#8221;提出的理论，持续集成的关键是代码构建的完全自动化，读取源代码、编译、连接、测试，整个创建过程都应该自动完成。对于一次成功的创建，要求在这个自动化过程中的每一个步都不能出错，而最重要的一步是测试，只有最后通过测试的创建才是成功的创建。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc（cruisecontrol）我不是第一次接触，在我负责第一个项目中就启用此工具，当时版本比较低，研究了几天就简单配好了，难点在于一般文档都是介绍cvs的，而我们公司用的是SVN，因此研究svn的配置花费了1点时间。我非常感谢掌晨雪编写的《持续集成实践之CruiseControl》文档，对我起了很大的帮助！<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cruisecontrol2.7是最新的版本，这个版本和以前相比，更加方便，并且增加了一个新的功能Dashboard，详情可以参看CruiseControl官方网站<a href="http://cruisecontrol.sourceforge.net/">http://cruisecontrol.sourceforge.net/</a>。这个版本还提供一个简单的例子，下载cruisecontrol-bin-2.7.2.zip并解压。在里面会找到projects、logs目录，在以前是没有的，这些都是要自己手动创建的，现在这个版本方便多了。在这两个目录下可以发现connectfour范例目录。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;来一下cruisecontrol的实现机制吧，如下图所示：<br><img height=439 alt="Architecture Diagram" src="http://cruisecontrol.sourceforge.net/cc-arch.png" width=782 border=0><br><br><strong>Build Loop：</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;持续集成最重要的特征之一就是自动话，而CC的Build Loop就是为支持自动化而设计的，Build Loop也是CC的核心。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build Loop从字面上理解就是循环创建的意思，CC提供了一个daemon进程，该进程根据配置的时间间隔（也可以指定某个具体时间）读取CC配置文件并进行循环创建（build cycle），每次CC都会重新加载配置文件config.xml（修改了配置文件不用重新启动CC）。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build Loop过程中所做的工作如下：访问源码控制系统，查看是否有代码被修改，如果有，获取源码的新版本，并根据配置对源代码进行一次Build，创建一个日志文件，最后项开发人员通知build的结果，活动图如下：<br><img height=751 alt="" src="http://www.cnitblog.com/images/cnitblog_com/huchangjun1980/cc_build_loop.png" width=452 border=0><br>因为Build Loop是根据配置文件的内容来进行的，根据上面Build Loop所做的工作，我们大概可以猜出配置信息主要应该包括：定时创建的时间和源码库访问信息，创建任务信息（如指定Ant文件），记录日志（创建结果），通知（通知内容可以订制）。<br><br>CC配置文件：<br>CC配置文件范connectfour范例如下：<br></p>
<fieldset style="BACKGROUND-COLOR: #ffff99">
<p><legend title=Config.xml><strong>Config.xml</strong></legend><span style="COLOR: #000080">&lt;cruisecontrol&gt;<br>&nbsp;&nbsp;&nbsp; &lt;project name="connectfour"&gt;</span></p>
<p style="COLOR: #000080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;listeners&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;currentbuildstatuslistener file="logs/${project.name}/status.txt"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/listeners&gt;</p>
<p style="COLOR: #000080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bootstrappers&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;antbootstrapper anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" target="clean" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bootstrappers&gt;</p>
<p style="COLOR: #000080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;modificationset quietperiod="30"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- touch any file in connectfour project to trigger a build --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filesystem folder="projects/${project.name}"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/modificationset&gt;</p>
<p style="COLOR: #000080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;schedule interval="300"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/schedule&gt;</p>
<p style="COLOR: #000080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;log&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge dir="projects/${project.name}/target/test-results"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/log&gt;</p>
<p style="COLOR: #000080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;publishers&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;onsuccess&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/onsuccess&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/publishers&gt;</p>
<p style="COLOR: #000080">&nbsp;&nbsp;&nbsp; &lt;/project&gt;<br>&lt;/cruisecontrol&gt;<br></p>
</fieldset>
<p>&nbsp;</p>
<fieldset style="BACKGROUND-COLOR: #ffff99"><legend><strong>&lt;cruisecontrol&gt;</strong></legend><span style="COLOR: #000080">根元素是&lt;cruisecontrol&gt;，该元素很简单，没什么需要配置的属性。</span></fieldset><br>&nbsp;
<fieldset style="BACKGROUND-COLOR: #ffff99"><legend><strong>&lt;project&gt;</strong></legend>目前CC支持多项目（multiproject），因此可以有多个并行的&lt;project&gt;元素。支持的子元素包括：<br>&nbsp;<a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#project"><u><font color=#800080>&lt;project&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#property"><u><font color=#800080>&lt;property/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#plugin"><u><font color=#800080>&lt;plugin/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#dateformat"><u><font color=#800080>&lt;dateformat/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#labelincrementer"><u><font color=#800080>&lt;labelincrementer/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#listeners"><u><font color=#800080>&lt;listeners&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#cmsynergysessionmonitor"><u><font color=#800080>&lt;cmsynergysessionmonitor/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#currentbuildstatusftplistener"><u><font color=#800080>&lt;currentbuildstatusftplistener/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#currentbuildstatuslistener"><u><font color=#800080>&lt;currentbuildstatuslistener/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#currentbuildstatuspagelistener"><u><font color=#800080>&lt;currentbuildstatuspagelistener/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#lockfilelistener"><u><font color=#800080>&lt;lockfilelistener/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/listeners&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#bootstrappers"><u><font color=#800080>&lt;bootstrappers&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#accurevbootstrapper"><u><font color=#800080>&lt;accurevbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#alienbrainbootstrapper"><u><font color=#800080>&lt;alienbrainbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#antbootstrapper"><u><font color=#800080>&lt;antbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#clearcasebootstrapper"><u><font color=#800080>&lt;clearcasebootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#clearcaseviewstrapper"><u><font color=#800080>&lt;clearcaseviewstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#cmsynergybootstrapper"><u><font color=#800080>&lt;cmsynergybootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#currentbuildstatusbootstrapper"><u><font color=#800080>&lt;currentbuildstatusbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#currentbuildstatusftpbootstrapper"><u><font color=#800080>&lt;currentbuildstatusftpbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#cvsbootstrapper"><u><font color=#800080>&lt;cvsbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#execbootstrapper"><u><font color=#800080>&lt;execbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#gitbootstrapper"><u><font color=#800080>&lt;gitbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#harvestbootstrapper"><u><font color=#800080>&lt;harvestbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#lockfilebootstrapper"><u><font color=#800080>&lt;lockfilebootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#mercurialbootstrapper"><u><font color=#800080>&lt;mercurialbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#p4bootstrapper"><u><font color=#800080>&lt;p4bootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#plasticscmbootstrapper"><u><font color=#800080>&lt;plasticscmbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#snapshotcmbootstrapper"><u><font color=#800080>&lt;snapshotcmbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#starteambootstrapper"><u><font color=#800080>&lt;starteambootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#surroundbootstrapper"><u><font color=#800080>&lt;surroundbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#svnbootstrapper"><u><font color=#800080>&lt;svnbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#tfsbootstrapper"><u><font color=#800080>&lt;tfsbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#vssbootstrapper"><u><font color=#800080>&lt;vssbootstrapper/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bootstrappers&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#modificationset"><u><font color=#800080>&lt;modificationset&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#accurev"><u><font color=#800080>&lt;accurev&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#alienbrain"><u><font color=#800080>&lt;alienbrain/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#alwaysbuild"><u><font color=#800080>&lt;alwaysbuild/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#buildstatus"><u><font color=#800080>&lt;buildstatus/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#clearcase"><u><font color=#800080>&lt;clearcase/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#cmsynergy"><u><font color=#800080>&lt;cmsynergy/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#compound"><u><font color=#800080>&lt;compound&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#compound"><u><font color=#800080>&lt;targets/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#compound"><u><font color=#800080>&lt;triggers/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/compound&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#cvs"><u><font color=#800080>&lt;cvs/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#darcs"><u><font color=#800080>&lt;darcs/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#filesystem"><u><font color=#800080>&lt;filesystem/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#forceonly"><u><font color=#800080>&lt;forceonly/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#git"><u><font color=#800080>&lt;git/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#harvest"><u><font color=#800080>&lt;harvest/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#httpfile"><u><font color=#800080>&lt;httpfile/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#mavensnapshotdependency"><u><font color=#800080>&lt;mavensnapshotdependency/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#maven2snapshotdependency"><u><font color=#800080>&lt;maven2snapshotdependency/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#mercurial"><u><font color=#800080>&lt;mercurial/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#mks"><u><font color=#800080>&lt;mks/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#p4"><u><font color=#800080>&lt;p4/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#plasticscm"><u><font color=#800080>&lt;plasticscm/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#pvcs"><u><font color=#800080>&lt;pvcs/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#snapshotcm"><u><font color=#800080>&lt;snapshotcm/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#starteam"><u><font color=#800080>&lt;starteam/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#store"><u><font color=#800080>&lt;store/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#surround"><u><font color=#800080>&lt;surround/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#svn"><u><font color=#800080>&lt;svn/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#tfs"><u><font color=#800080>&lt;tfs/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#timebuild"><u><font color=#800080>&lt;timebuild&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#ucm"><u><font color=#800080>&lt;ucm&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#veto"><u><font color=#800080>&lt;veto/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#vss"><u><font color=#800080>&lt;vss/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#vssjournal"><u><font color=#800080>&lt;vssjournal/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/modificationset&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#schedule"><u><font color=#800080>&lt;schedule&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#ant"><u><font color=#800080>&lt;ant/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#maven"><u><font color=#800080>&lt;maven/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#maven2"><u><font color=#800080>&lt;maven2/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#pause"><u><font color=#800080>&lt;pause/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#nant"><u><font color=#800080>&lt;nant/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#phing"><u><font color=#800080>&lt;phing/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#rake"><u><font color=#800080>&lt;rake/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#exec"><u><font color=#800080>&lt;exec/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#composite"><u><font color=#800080>&lt;composite/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/schedule&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#log"><u><font color=#800080>&lt;log&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#merge"><u><font color=#800080>&lt;merge/&gt;</font></u></a><br><a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#gzip"><u><font color=#800080>&lt;gzip/&gt;</font></u></a><br><a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#delete"><u><font color=#800080>&lt;delete/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/log&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#publishers"><u><font color=#800080>&lt;publishers&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#antpublisher"><u><font color=#800080>&lt;antpublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#artifactspublisher"><u><font color=#800080>&lt;artifactspublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#clearcasebaselinepublisher"><u><font color=#800080>&lt;clearcasebaselinepublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#cmsynergybaselinepublisher"><u><font color=#800080>&lt;cmsynergybaselinepublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#cmsynergytaskpublisher"><u><font color=#800080>&lt;cmsynergytaskpublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#compoundpublisher"><u><font color=#800080>&lt;compoundpublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#currentbuildstatuspublisher"><u><font color=#800080>&lt;currentbuildstatuspublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#currentbuildstatusftppublisher"><u><font color=#800080>&lt;currentbuildstatusftppublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#email"><u><font color=#800080>&lt;email/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#execute"><u><font color=#800080>&lt;execute/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#ftppublisher"><u><font color=#800080>&lt;ftppublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#htmlemail"><u><font color=#800080>&lt;htmlemail/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#http"><u><font color=#800080>&lt;http&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#jabber"><u><font color=#800080>&lt;jabber/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#onfailure"><u><font color=#800080>&lt;onfailure/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#onsuccess"><u><font color=#800080>&lt;onsuccess/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#rss"><u><font color=#800080>&lt;rss/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#sametimeannouncement"><u><font color=#800080>&lt;sametimeannouncement/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#scp"><u><font color=#800080>&lt;scp/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#sfeedocman"><u><font color=#800080>&lt;sfeedocman/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#sfeefrs"><u><font color=#800080>&lt;sfeefrs/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#sfeetracker"><u><font color=#800080>&lt;sfeetracker/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#socket"><u><font color=#800080>&lt;socket/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#weblogpublisher"><u><font color=#800080>&lt;weblog&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#x10"><u><font color=#800080>&lt;x10/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#xsltlogpublisher"><u><font color=#800080>&lt;xsltlogpublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="file:///E:/工具/Development/cruisecontrol-bin-2.7.2/docs/main/configxml.html#yahoopublisher"><u><font color=#800080>&lt;yahoopublisher/&gt;</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/publishers&gt;<br>&nbsp;&nbsp; &lt;/project&gt;<br></fieldset>
<p>&nbsp;子元素详情可以参看官方文档的说明。<br>这里只介绍几个常用的子元素：<br></p>
<fieldset style="BACKGROUND-COLOR: #ffff99"><legend><strong>&lt;bootstrappers&gt;</strong></legend><span style="COLOR: #000080">&lt;bootstrappers&gt;在创建之前会运行，相当于一个预处理的作用，&lt;bootstrappers&gt;下面每个子元素都是独立的，因此可以同时配置多个bootstrappers。<br>CC提供的bootstrappers包括两种，一种用于向其他插件提供项目当前创建的状态，还有一种是从某个源码控制系统更新本地文件，其中最常用的就是&lt;currentbuildstatusbootstrapper&gt;和&lt;svnbootstrappers&gt;。<br>&lt;currentbuildstatusbootstrapper&gt;指定了状态文件的位置，主要是用来访问项目当前创建的状态，CC的&lt;currentbuildstatusbootstrapper&gt;会将创基爱你的状态写入这个文件。<br>&lt;svnbootstrapper&gt;的作用有点难理解，因为我们每次项目的创建都应该基于最新的代码，因此在创建之前就要获得最新的项目文件，如果使用的是ant来完成这个任务，那么buildfile本身在创建开始之前发生了变化，我们是不是应该先更新这个buildfile，然后才通过buildfile来对项目进行构建呢？&lt;svnbootstrapper&gt;就是为从源码控制系统更新buildfile文件而设计的（还有一种替代的使用方法是使用wrapper buildfile，这样就不用使用&lt;svnbootstrapper&gt;了，wrapper buildfile也是推荐的方法，&lt;modificationset&gt;部分会进行详细的讨论）。</span></fieldset> <br>
<fieldset style="BACKGROUND-COLOR: #ffff99"><legend><strong>&lt;modificationset&gt;</strong></legend><span style="COLOR: #000080">&lt;modificationset&gt;包括了SourceControl插件的配置信息，用于检查各个源码控制系统中是否发生变化，&lt;schedule&gt;会用到这里的配置信息，如果检测到变化，会触发创建过程。<br><span style="COLOR: #000080">&lt;modificationset&gt;的属性quietperiod（单位为秒）定义了一个时间值。如果CC检查到了变化，会自检查到变化的源码控制系统的最后一次check in 的时间开始等待，等待时间由quietperiod决定，等待结束之后才触发创建（build）过程，主要是防止有人在check in的过程当中就触发创建过程（可能check in只做了一半，这个时候触发创建显然是不正确的）。<br></span></span></fieldset> 下面是一个modificationset的例子：<br>
<fieldset style="BACKGROUND-COLOR: #ffff99"><legend>例子：</legend>&lt;modificationset quietperiod="30"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;svn localworkingcopy="projects/SFA"/&gt;<br>&lt;/modificationset&gt;</fieldset><br>未完成，待续...<br>
<img src ="http://www.cnitblog.com/huchangjun1980/aggbug/42474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/huchangjun1980/" target="_blank">小胡子</a> 2008-04-24 10:40 <a href="http://www.cnitblog.com/huchangjun1980/articles/42474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>