0

我正在尝试在我的 ccnet.config 文件中定义一些值。

我正在运行版本 1.4.4.83。

我将 xmlns:cb="urn:ccnet.config.builder" 添加到我的主要 Cruisecontrol element.like 中:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">

接下来我定义了一些定义处理器常量:

<cb:define prodbuildtag="1.1.25.1207" />
<cb:define testbuildtag="1.1.25.1207">

最后我尝试在标签中引用定义值,如下所示:

<sourcecontrol type="svn">
    <trunkUrl>https://someserver/svn/myproject/tags/$(prodbuildtag)</trunkUrl>
    <username>johnDoe</username>
    <password>JelloW0r1d</password>
    <tagOnSuccess>false</tagOnSuccess>
    <tagBaseUrl>https://someserver/svn/myproject/tags/</tagBaseUrl>
</sourcecontrol>

当我使用脚本进行构建时,它将定义 $(prodbuildtag) 视为一个空字符串,并根据 trunkUrl ' https://someserver/svn/myproject/tags/ '签出代码。我无法让配置预处理器工作;请帮忙。

4

2 回答 2

1

我测试了您在 1.5 中发布的代码,它似乎可以工作。如果您包含多个文件,请确保您<cruisecontrol xmlns:cb="urn:ccnet.config.builder">在每个文件中都有

我认为 $()​​ 语法也可以解析环境变量。

于 2009-10-01T22:01:58.983 回答
0

我知道这行得通,因为我们一直这样做。这是我们在 ccnet.config 文件中的示例:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">

  <cb:define svnPath="C:\Program Files\CollabNet Subversion\svn.exe"/>      
  <cb:define svnReposRootUrl="http://someserver/svn"/>

  <!-- cc.net auto-updating config project -->
  <project name="ccnet-config">
    <triggers>
      <intervalTrigger seconds="30"/>
    </triggers>
    <sourcecontrol type="svn">
      <workingDirectory>C:\Program Files\CruiseControl.NET\server\config</workingDirectory>
      <executable>$(svnPath)</executable>
      <trunkUrl>$(svnReposRootUrl)/build/trunk/ccnet/config/XMGBUILD01</trunkUrl>
    </sourcecontrol>
  </project>

</cruisecontrol>

从您的问题中不清楚 cb:define 标签与您使用它的位置有关。我会尝试把它作为 Cruisecontrol 元素的子元素。我不知道它是否可以成为其他任何东西的孩子......我从未尝试过。

于 2009-10-01T23:42:24.803 回答