家里没有Linux,又很想跑下CC.rb,
最近一个项目需要了解下持续集成,所以在家里下载了最新的CC.rb装起来,并且cruise add了两个项目,
问题是,把CC跑起来后,首页看不到我加的那两个项目,而在
C:\Documents and Settings\Administrator\.cruise\projects
这里的确存在!
看了下CC的逻辑,找到Projects模型的几个关于加载的方法,
def initialize(dir = CRUISE_DATA_ROOT + "/projects")
@dir = dir
@list = []
end
def load_all
@list = Dir["#{@dir}/*"].find_all {|child| File.directory?(child)}.sort.
collect {|child| Projects.load_project(child)}
self
end
打开Console开始调试,
我一开始怀疑@dir路径的值不对,
于是这样:
>> Projects.new.instance_eval{@dir}
=> "C:\\Documents and Settings\\Administrator/.cruise/projects"
没问题啊,是这个路径。
再想想,是不是@list是空的啊,
结果一试的确是空的,nnd。
跟着load_all里面的代码继续尝试,发现这里有问题:
Dir["#{@dir}/*"]
>> Dir["C:/Documents and Settings/Administrator/.cruise/projects/*"]
=> ["C:/Documents and Settings/Administrator/.cruise/projects/test_cc", "C:/Docu
ments and Settings/Administrator/.cruise/projects/testcc2"]
>> Dir["C:\\Documents and Settings\\Administrator/.cruise/projects/*"]
=> []
Windows和Linux路径分隔符不统一导致,CC又没有人为避免,结果就把我郁闷了一下:(
郁闷啊,今晚不搞了,明天还是回到linux上搞搞吧。
不爽,
实在很想马上试试CC,得把它搞定!
继续调试,上面写在load_all中的代码可以手动的改掉,但CRUISE_DATA_ROOT这个变量的值要改成windows的分隔符有点麻烦,要找到CRUISE_DATA_ROOT在什么地方。
在boot.rb找到了CRUISE_DATA_ROOT的最初定义,
unless defined? CRUISE_DATA_ROOT
if ENV['CRUISE_DATA_ROOT']
CRUISE_DATA_ROOT = ENV['CRUISE_DATA_ROOT']
else
CRUISE_DATA_ROOT = File.join(find_home, ".cruise")
end
puts "cruise data root = '#{CRUISE_DATA_ROOT}'"
end
看到File.join这玩意,以前没好好主意,马上试了下,发现即便在windows平台,它也是默认'/'为路径分隔符的,太讨厌。
改掉它!
unless defined? CRUISE_DATA_ROOT
if ENV['CRUISE_DATA_ROOT']
CRUISE_DATA_ROOT = ENV['CRUISE_DATA_ROOT']
else
#CRUISE_DATA_ROOT = File.join(find_home, ".cruise")
CRUISE_DATA_ROOT = File.join(find_home, ".cruise").gsub('\\','/')
end
puts "cruise data root = '#{CRUISE_DATA_ROOT}'"
end
重启,看到了CC首页上我建的两个项目,搞定!
改这里更好些:
['HOME', 'USERPROFILE'].each do |homekey|
#return ENV[homekey] if ENV[homekey]
return ENV[homekey].gsub('\\','/') if ENV[homekey]
end
分享到:
- 2009-05-20 23:33
- 浏览 703
- 评论(4)
- 论坛回复 / 浏览 (4 / 1793)
- 查看更多
相关推荐
**持续集成之CruiseControl.rb** CruiseControl.rb是一款开源的持续集成工具,主要用于自动化构建、测试和部署软件项目。它是由ThoughtWorks公司开发的,是CruiseControl.NET的Ruby版本,因此在Ruby社区中被广泛...
CruiseControl.rb:简单的持续集成 ###介绍 是一个服务器。 它使团队中的每个人都了解项目的运行状况和进度。 CC.rb易于安装,易于使用且易于破解。 它是用Ruby编写的,并由软件开发咨询公司的开发人员在业余...
全套汽车巡航系统模糊控制设计Matlab文件-CruiseControl.zip 全套m.file文件,包括模型和 CruiseControl.zip 模糊控制器设计。
CruiseControl通过一个XML配置文件来定义其行为,这个文件通常被称为`cruisecontrol.xml`。在这个文件中,我们可以设置各种属性,包括构建触发器、构建步骤、通知规则等。 **1. 安装与启动CruiseControl** 在开始...
cruisecontrol.war 文件,你可以直接将这个文件 COPY 到你的%TOMCAT_HOME%\webapps 目录下,不 过这种方式通常都会出错,前 面我们讲过CC的WEB组件要访问我们的项目build 的状态文件,而下载的 CC2.2 里面自带的 ...
CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build ...
CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build ...
CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build ...
CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build ...
"cruisecontrol.rar"是一个关于汽车控制系统的仿真模型,其中包含了汽车模型以及PID控制模型的整合。本文将详细解析这一主题,帮助读者深入理解PID控制在汽车控制中的原理与应用。 首先,汽车模型是整个控制系统的...
首先,CruiseControl的安装通常涉及下载最新版本的软件包,如V2.6.2,这可以从其官方网站sourceforge.net获取。安装完成后,系统会包含一系列必要的文件和目录,比如`cruisecontrol.bat`用于启动服务,`config.xml`...
`main.jsp` 是CruiseControl Web界面的一个页面,用户可以通过这个页面查看构建状态、历史记录以及错误报告等信息。页面通常会展示构建的进度条、最近的构建结果、项目列表和详细的构建日志。`main.jsp` 文件的定制...
- **CruiseControl 目录**:`%~dp0` 表示当前脚本所在的目录,这通常是 CruiseControl 的安装目录。 - **JMX 端口配置**:`-jmxport 8000 -rmiport 1099` 参数用于指定 JMX server 的端口,使得远程监控成为可能。 ...
【压缩包子文件的文件名称列表】: cruise_control.zip 这意味着在解压外层的"cruise_control.zip.zip"后,我们将会得到一个名为"cruise_control.zip"的文件。这个内部压缩文件可能包含以下几个部分: 1. **源代码**...
CruiseControl-2.8.4.exe
这份"CruiseControl使用指南.rar"包含了一系列关于如何有效利用CruiseControl进行持续集成的资源,包括文章、教程和示例。 1. **CruiseControl简单使用介绍**:这部分可能涵盖了CruiseControl的基本操作,如安装、...
而现在,CruiseControl已发展成为一个家族式系统,包括CruiseControl.java、CruiseControl.net、CruiseControl.ruby等适应不同语言环境的实现,其强大的插件和扩展能力也是诸多同类系统无法比你的。而在这里,我只...
这个项目将包含必要的构建和测试逻辑,以展示CruiseControl如何处理完整的构建周期。 1.5 config.xml CruiseControl的主要配置文件是`config.xml`,其中定义了项目的构建流程。有两种主要的配置方式: - **普通方式...
文件“Vehicle_Cruise control_Matlab”很可能包含了实现这一功能的MATLAB源代码。 Cruise Control的核心是控制器,通常采用PID(比例-积分-微分)控制器或者更先进的控制策略。PID控制器通过调整发动机的输出功率...
- **OpenDoc-CruiseControl.pdf**:这可能是一个开源社区编写的CruiseControl文档,可能包含了社区的最佳实践、最新更新和用户经验分享。 深入学习这些文档,开发者将能更好地理解和应用CruiseControl,提升团队的...