我发过一次这个问题,但我认为这是不完整的信息。这是我的问题.我是詹金斯的新手。我正在詹金斯经营一个自由式项目。以前,我在所有的构建中都使用了BuildForge。
问题是,有一个属性文件,比如abc.properties文件。它包含
Buildnumber=0
以前,我使用的是一个xml和BTM文件,通过这些文件"BuildNumber“可以与当前的版本号同步。BTM文件的代码是
回波build.number=%ABCBuild重定向到: c:%BUILDBASEDIR\myfile\ABCbuild.number回波build.number=%ABCBuild c:%BUILDBASEDIR\myfile\ABCbuild.number回波build.number=%ABCBuild重定向到: c:%BUILDBASEDIR\myfile\GUIbuild.number回波build.number=%ABCBuild > c:%BUILDBASEDIR\myfile\GUIbuild.number回波collector.build.number=%1重定向到: c:%BUILDBASEDIR\myfile\filebuild.properties回波collector.build.number=%1> c:%BUILDBASEDIR\myfile\filebuild.properties回波collector.build.type=indiv附加到: c:%BUILDBASEDIR\myfile\filebuild.properties echo collector.build.type=indiv >> c:%BUILDBASEDIR\myfile\filebuild.properties echo。
并创建一个压缩文件,其中abc.properties文件包含版本号。
xml文件所涉及的步骤包括
准备: 安全清洁: 创建-文件: 创建-当前文件-qpack: 创建-file-qpack: 构建文件-qpack: 创建-当前文件-rpack: 创建-file-rpack: 构建文件-rpack: 准备-任何工作室: 填充文件-道具: 创建当前文件:
<target name="create-current-file" depends="prepare-anystudio,fill-file-props">
<property name="file.name" value="${file.name}"/>
<property name="file.version" value="${file.version}"/>
<property name="file.path" value="${file.path}"/>
<echo message="Building file ${file.name} version ${file.version}......."/>
<delete dir="${cur.dirname}/${dir.final}/files/${file.name}"/>
<echo message="-sourcefiles ${file.path}/${file.name} -output ${cur.dirname}/${dir.final}"/>
<java dir="${cur.dirname}/${dir.filestudio.exec}"
classname="com.comp.cas.ucf.configtool.DistributionUtil" failonerror="true" fork="yes">
<classpath refid="classpath.studio"/>
与jenkins有关的构建步骤包括
清除工作区 绝对同步 运行批处理命令 调用Ant (前面提到的步骤) 建设成功 运行(批处理) 马克迪尔 创建拉链
我已经编写了批处理文件来替换当前的版本号。但是在蚂蚁运行完它的游戏结束状态后,因为它不更新文件。批处理脚本是
我正在使用的批处理脚本。
@echo关闭 呼叫:FindReplace "Buildnumber=0“"Buildnumber=%BUILD_NUMBER%”abc.properties出口/b :FindReplace set tmp="%temp%\tmp.txt“如果不存在%temp%\.vbs调用:MakeReplace for /f "tokens=*”%a in ('dir "%3“/s /b /a /on') do ( /f "usebackq”%b in (
Findstr /mic:"%~1" "%%a"
) do )do(Echo在文件%%~nxa中用%~2替换"%~1“)%~nxa<%a cscript //nologo %temp%\.vbs "%~1”"%~2">%tmp% (如果存在%tmp%移动/Y %tmp%“%~dpnxa”>nul) del %temp%\_.vbs退出/b :MakeReplace Wscript的%temp%_.vbs回波 %temp%_.vbs回波集args=.arguments %temp%_.vbs回波.StdOut.Write _ %temp%_.vbs回波替换(.StdIn.ReadAll,args(0),args(1),1,-1,1) %temp%_.vbs回波结束。
现在谁能告诉我..。如何将构建号放在zip文件中。是的,zip文件是在本地回购路径创建的,而不是在工作区中创建的。
我的所有代码签入和同步都使用Perforce。
我认为“创建当前文件”正在填充我的文件和属性文件。
请帮帮忙。我希望在jenkins中使用类似的逻辑,这样我也可以在zip文件中获得版本号。上面的脚本非常有用,它改变了工作区中的版本号,但在蚂蚁调用游戏更改后没有效果,我得到了buildNumber为0,因为强制中的构建号总是0。
注意: ANT从P4存储它的工作区获取它的文件。
需要做的事。请帮忙,我已经花了三天时间在上面了。
发布于 2013-11-28 11:15:35
如果在一个项目中使用此值,则不需要任何神奇的或脚本编写的资产来获得版本号。;)
每个作业(以及任何类型的jenkins支持的项目类型)都有使用环境变量的能力。
请参阅此链接:http://``/env-vars.html/?举个例子。
只要您使用SCM并构建SCripting ( Maven,Ant,?),您就可以自由使用它们。如果从windows批处理调用,请使用%%访问它们,而不是使用${}语法。;)
https://stackoverflow.com/questions/20128406
复制相似问题