使用CruiseControl获得乐趣和游戏。
我已经在我的Windows XP机器上安装了一个Java项目到本地安装的CruiseControl。
我的config.xml文件每分钟运行一次,并从我的ant脚本构建我的项目。
尽管在仪表板的“修改”选项卡中检测到Trunk的更改,但当我查看工作副本中受影响文件的日期和时间戳时,我注意到这些更改未更改。
这是我的build.xml运行的本地副本,所以我担心,虽然我的config.xml配置正确,而CruiseControl检测到更改,但我的Ant脚本没有针对同步的工作副本运行与树干。
我发布了我的配置文件,希望有人在那里发现一些对他们来说很明显的东西,但对我来说不是!
配置xml:
<?xml version="1.0"?>
<cruisecontrol>
<dashboard url="http://localhost:8080/dashboard" postinterval="1" />
<project name="myProject" requireModification="false">
<listeners>
<currentbuildstatuslistener file="logs/myProject/status.txt"/>
</listeners>
<bootstrappers>
<svnbootstrapper file="build.xml"
username="cruise_control" password="password"
localWorkingCopy="projects\myProject" />
</bootstrappers>
<modificationset>
<svn repositoryLocation="https://path/to/myTrunk"
localWorkingCopy="projects/myProject"
username="cruise_control" password="password">
</svn>
</modificationset>
<schedule interval="60" >
<ant buildfile="build.xml" anthome="C:\Program Files\apache-ant-1.8.2" antWorkingDir="projects/myProject/" />
</schedule>
<log>
<merge dir="C:\Program Files\CruiseControl\projects\myProject\reports\junit" pattern="TEST*.xml" />
</log>
<publishers>
<artifactspublisher dir="C:\Program Files\CruiseControl\projects\myProject\dist"
dest="C:\Program Files\CruiseControl\artifacts\myProject"
moveInsteadOfCopy="true" />
</publishers>
</project>
</cruisecontrol>
仪表板配置文件:
<dashboard>
<buildloop
logsdir="C:/Program Files/CruiseControl/logs/"
artifactsdir="C:/Program Files/CruiseControl/artifacts/" />
<features allowforcebuild="true" />
<trackingtool projectname="" baseurl="" keywords=""/>
<subtabs>
<subtab class="net.sourceforge.cruisecontrol.dashboard.widgets.ErrorsAndWarningsMessagesWidget" />
</subtabs>
</dashboard>
提前致谢。
答案 0 :(得分:2)
我配置与Ben指出的相同。但是,我遇到了两个问题。
2.我只有
<bootstrappers>
<svnbootstrapper file="build.xml" localWorkingCopy="projects\myProject" />
</bootstrappers>
并且没有uid / pwd字段。在2.8.4版本之前的旧Cruisecontrol中,它可以正常工作。但在这里它失败了并问我:
ProjectController - 'myProject'控制器:构建进度事件:bootstrapping SVNBootstrapper - svn:无法获取密码
它失败了。解决此密码问题的唯一方法是:
一个。添加属性用户名和密码(如Ben上面所示)或
湾运行cmd line svn update命令,在提示时提供uid / pwd。然后说“是”将密码存储为“未加密”。 有没有办法在我的第二个问题中使用这两种方法(a)和(b)?
答案 1 :(得分:0)
IIRC Cruisecontrol
检测到存储库的更改,但不会自动更新工作副本。因此,一种可能性是您的构建脚本没有代码来更新存储库中的更改(即执行svn update
)。
答案 2 :(得分:0)
我发现了问题。
我的引导程序如下:
<svnbootstrapper file="build.xml"
username="cruise_control" password="password"
localWorkingCopy="projects\myProject" />
使用“file”属性,svnbootsraper仅监视给定文件。
删除此属性后,引导程序将监视整个工作副本:
<svnbootstrapper username="cruise_control" password="password"
localWorkingCopy="projects\myProject" />
假设modifyset属性执行SVN更新似乎是一个常见的错误。实际上,它只监听修订号的增量。 svnbootstrapper是否执行SVN更新。
希望这有助于某人!