Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Continuous integration 如何使用CruiseControlNet将集成属性传递给批处理文件?_Continuous Integration_Cruisecontrol.net_Ccnet Config - Fatal编程技术网

Continuous integration 如何使用CruiseControlNet将集成属性传递给批处理文件?

Continuous integration 如何使用CruiseControlNet将集成属性传递给批处理文件?,continuous-integration,cruisecontrol.net,ccnet-config,Continuous Integration,Cruisecontrol.net,Ccnet Config,在我的项目的构建日志中,我可以看到以下属性: <integrationProperties> <CCNetProject>Gdet_T</CCNetProject> ... <LastModificationDate>4/6/2010 1:29:04 PM</LastModificationDate> <LastChangeNumber>10841</LastChangeNumber> </

在我的项目的构建日志中,我可以看到以下属性:

<integrationProperties>
  <CCNetProject>Gdet_T</CCNetProject>
  ...
  <LastModificationDate>4/6/2010 1:29:04 PM</LastModificationDate>
  <LastChangeNumber>10841</LastChangeNumber>
</integrationProperties>
我尝试将其作为环境变量传递,但失败:

<exec>
  <executable>$(WorkingFolderBase)\MyBatch.bat</executable>
  <baseDirectory>$(WorkingFolderBase)\</baseDirectory>
  <environment>
    <variable>
      <name>svn_label</name>
      <value>"${LastModificationDate}"</value>
    </variable>
  </environment>
</exec>

$(WorkingFolderBase)\MyBatch.bat
$(WorkingFolderBase)\
svn_标签
“${LastModificationDate}”
当我显示参数或变量时,结果总是一样的:空字符串或变量名
$(svn\u标签)


我相信这很简单,但是。。。我找不到!有什么想法吗?

CCNET将以下参数传递给外部程序:

CCNetArtifactDirectory 
CCNetBuildCondition 
CCNetBuildDate 
CCNetBuildTime 
CCNetFailureUsers 
CCNetIntegrationStatus 
CCNetLabel 
CCNetLastIntegrationStatus 
CCNetListenerFile 
CCNetModifyingUsers 
CCNetNumericLabel 
CCNetProject 
CCNetProjectUrl 
CCNetRequestSource 
CCNetUser 
CCNetWorkingDirectory 
如您所见,
LastIntegrationStatus
例如可通过
CCNetLastIntegrationStatus
获得,但
LastModificationDate
例如没有等效项

您可以通过
传递附加参数,但CCNET配置中,您对上述集成属性没有访问权限。大多数开始使用CCNET的人(包括我自己)都会尝试类似于
$(CCNetProject)
的方法,但都失败了

看看我的衣服

很抱歉,我无法提供更好的解决方案

更新(关于):

在CCNET配置中使用
$[$CCNetLabel]
似乎不起作用

坦率地说,如果真是这样的话,我会感到相当惊讶。配置是静态的,而
CCNetLabel
是动态的,可能会随着每次集成构建而改变。假设您可以访问配置中的这些动态属性,则配置可能会随着每次生成而更改。由于更改配置意味着自动重新启动CCNET服务器,因此每次生成都会导致服务器重新启动。实际上这不是一个理想的行为,是吗?

好的,找到了解决方案。 需要使用名为SvnRevisionLabeller的特定标签来检索svn修订版。 然后可通过
CCNetLabel
environment变量获取


http://mysvnrootproject/trunk 

您混淆了环境变量和参数示例。查看我提到的旧问题,我发现思考者给出了以下答案:。我明天会尝试这个解决方案。是的,我明天也会尝试ccnet标签机获取svn版本号我甚至无法在CC.NET中获取svn版本。。。即使有一个贴标机块。。。对于一个小请求来说相当困难:将svn修订版传递到批处理文件。也许我应该用这个标题打开一个新问题?如果只是关于访问批处理文件中的标签,可能有一个解决方法:在CCNET配置中选择适当的标签机(例如,上次更改标签机[sic]),并通过
%CCNetLabel%
访问它。这不会让您访问SCM的修改日期,标签机的行为取决于SCM类型,但您可能会在批处理文件中获得
LastChangeNumber
。这有点奇怪,但我会接受我的回答:)谢谢你们的帮助,这对调查非常有用。
CCNetArtifactDirectory 
CCNetBuildCondition 
CCNetBuildDate 
CCNetBuildTime 
CCNetFailureUsers 
CCNetIntegrationStatus 
CCNetLabel 
CCNetLastIntegrationStatus 
CCNetListenerFile 
CCNetModifyingUsers 
CCNetNumericLabel 
CCNetProject 
CCNetProjectUrl 
CCNetRequestSource 
CCNetUser 
CCNetWorkingDirectory 
<labeller type="svnRevisionLabeller"> 
  <url>http://mysvnrootproject/trunk</url> 
</labeller>