Cruisecontrol相关问题

用cruisecontrol来发布项目以及编译程序好一阵了,总结了一下相关问题,当初自己也遇到过的,希望对大家有帮助

1.cruisecontrol编译swf问题

如果直接对相对路径的话,会报mxmlc错误:无法打开“src“

这里mxmlc很奇怪,直接用ant编译的话,这个build.xml文件是没错的。但是如果采用cruisecontrol来自动编译的话,就会出错上面的错啦。既然是路径问题,那就改成绝对路径。

经过测试发现,只需要在<mxmlc></mxmlc>字段中的file属性和source-path属性路径需要修改以外,其他地方不一样,可以正常编译通过。

(当然,也可以取相对路径,但是必须加上projects/游戏项目名称/src)。比其他地方,在src面前增加了projects/游戏项目名称。

这里我估计是ant的问题,我采用EditPlus里编译build,可以看成ant和build在同一个目录,所以路径不会出现问题。但是在projects/游戏项目名称中,ant是和projects同个级别的目录。所以需要特别指明路径。(这里有点奇怪的是,编译java却不会出现这个问题)

2.用ant编译flash的swc时,有时会造成Javaheapspace错误。检查一下,发现是编译时读取了太多的flex的swc,根据需要去掉一些没用的swc就可以。例如编译纯as3项目,只需要导入playerglobal.swc就可以了。当然,你也通过设置jvm虚拟机的Heap值。

3.svn错误

程序代码

net.sourceforge.cruisecontrol.CruiseControlException: svn failed with exception
 
at net.sourceforge.cruisecontrol.util.CommandExecutor.executeAndWait(Com
mandExecutor.java:115)
 
at net.sourceforge.cruisecontrol.util.Commandline.executeAndWait(Command
line.java:617)
 
at net.sourceforge.cruisecontrol.bootstrappers.SVNBootstrapper.bootstrap
(SVNBootstrapper.java:134)
 
at net.sourceforge.cruisecontrol.Project.bootstrap(Project.java:760)
 
at net.sourceforge.cruisecontrol.Project.build(Project.java:192)

解决方法:原因是你的命令行不能执行SVN命令,所以装一个subversion就可以解决了,希望使用的subversion版本新一点,要不然还会报版本过旧的错误。注意,千万不要去弄客户端的TortoiseSVN

4.

<bootstrappers>
    <svnbootstrapper localWorkingCopy="projects/${project.name}/src" />
 </bootstrappers>

注意,这里

程序代码

<svnbootstrapper localWorkingCopy="projects/${project.name}/src" />
<modificationset quietperiod="30">
    <svn localWorkingCopy="projects/${project.name}/src"/>
</modificationset>

中指定的目录,必须是一个svn目录。不然会包svn:'.'isnotaworkingcopy的错误,可以继续执行,这时你的build.xml如果也有svn的话,也是可以正常进行的

同时,这里指定了svn,那么在项目的build.xml中,就不需要增加svn的设置了

相关推荐