代码之家  ›  专栏  ›  技术社区  ›  minty

使配置预处理器在CruiseControl.net中工作

  •  0
  • minty  · 技术社区  · 16 年前

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

    我运行的是1.4.4.83版。

    我将xmlns:cb=“urn:ccnet.config.builder”添加到我的主cruiseControl元素中。例如:

    <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>
    

    当我使用脚本时,它将define$(prodbuildtag)视为空字符串,并根据trunkurl'签出代码。 https://someserver/svn/myproject/tags/ '.我无法使配置预处理器工作;请帮助。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Ryu    16 年前

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

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

        2
  •  0
  •   Dustin    16 年前

    我知道这是可行的,因为我们一直在这样做。以下是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元素的孩子。我不知道它是否能成为其他任何事物的孩子…我从未尝试过。

    推荐文章