CruiseControl Web 应用程序在 Apache Tomcat 应用程序服务器中运行,使用的是包含在 Fedora Core 4 发行版中的拷贝。需要安装 tomcat5 和 tomcat5-admin-webapps 包:

[root@fcvm ~]# yum install tomcat5 tomcat5-admin-webapps
    [...]
Installed: tomcat5.i386 0:5.0.30-5jpp_6fc tomcat5-admin-webapps.i386 0:5.0.30-5jpp_6fc
Dependency Installed: tomcat5-jasper.i386 0:5.0.30-5jpp_6fc
Complete!
[root@fcvm ~]#


还需要安装 Java 事务 API(JTA)的一个实现。可以用 JPackage 中(请参阅 参考资料)的 RPM 规范文件构建自己的 JTA RPM,但是简单的选择是安装来自 Fedora 仓库的 geronimo-specs 和 geronimo-specs-compat:

[root@fcvm ~]# rpm -Uvh http://download.fedora.redhat.com/
pub/fedora/linux/core/development/i386/Fedora/RPMS/
geronimo-specs-1.0-0.M2.2jpp_4fc.i386.rpm
Preparing...                ################################### []
   1:geronimo-specs         ################################### []
[root@fcvm ~]# rpm -Uvh http://download.fedora.redhat.com/
pub/fedora/linux/core/development/i386/Fedora/RPMS/
geronimo-specs-compat-1.0-0.M2.2jpp_4fc.i386.rpm
Preparing...                ################################### []
   1:geronimo-specs-compat  ################################### []
[root@fcvm ~]#


使用默认的 Tomcat 安装,CruiseControl Web 应用程序会找不到合适的 JAXP TransformerFactory 实现,所以需要向选定的类目录添加默认 JAXP XML 转换器:

[root@fcvm ~]# cd /usr/share/tomcat5/common/endorsed
[root@fcvm endorsed]# ln -s /usr/share/java/jaxp_transform_impl.jar
[jaxp_transform_impl].jar
[root@fcvm endorsed]# ls -l
total 12
lrwxrwxrwx  1 root root 36 Sep 19 01:33 [jaxp_parser_impl].jar -> /usr
/share/java/jaxp_parser_impl.jar
lrwxrwxrwx  1 root root 39 Sep 19 01:47 [jaxp_transform_impl].jar -> /
usr/share/java/jaxp_transform_impl.jar
lrwxrwxrwx  1 root root 36 Sep 19 01:33 [xml-commons-apis].jar -> /usr
/share/java/xml-commons-apis.jar
[root@fcvm endorsed]#


CruiseControl Web 应用程序可以绘制重要的构建统计图,例如成功构建与失败构建的比例。画图的库要使用 Java AWT,所以需要确保 JVM 运行在 headless 模式。要做到这一点,请编辑 /etc/tomcat5/tomcat5.conf 文件,并插入下面这一行:JAVA_OPTS="-Djava.awt.headless=true",位置大约在第 10 行。

现在,在 /etc/tomcat5/Catalina/localhost 下创建一个叫作 cruisecontrol.xml 的文件,把 CruiseControl Web 应用程序添加到 Tomcat 的配置。清单 5 显示了这个文件的内容:

清单 5. /etc/tomcat5/Catalina/localhost/cruisecontrol.xml 的内容

    
<Context path="/cruisecontrol"
         docBase="/home/cruise/pkg/cruisecontrol-2.2.1/reporting/jsp/d
ist/cruisecontrol.war">
  <Parameter name="logDir"
             value="/home/cruise/log/build"
             override="false"/>
  <Parameter name="cacheRoot"
             value="/var/cache/tomcat5/cruisecontrol"
             override="false"/>
</Context>


请注意,清单 5 中的第二行出于显示的原因进行了回绕。docBase 属性在创建的文件中应该单独占一行。

还需要为 CruiseControl Web 应用程序创建一个保存页面缓存的目录:

[root@fcvm ~]# cd /var/cache/tomcat5
[root@fcvm tomcat5]# mkdir cruisecontrol
[root@fcvm tomcat5]# chgrp tomcat cruisecontrol
[root@fcvm tomcat5]# chmod g+w cruisecontrol
[root@fcvm tomcat5]# ls -l
total 24
drwxrwxr-x  2 root tomcat 4096 Sep 16 09:32 cruisecontrol
drwxrwxr-x  2 root tomcat 4096 May 10 11:57 temp
drwxrwxr-x  3 root tomcat 4096 Sep 15 22:53 work
[root@fcvm tomcat5]#