当收到错误报告或it-doesnt-work消息时,我的姓名首字母问题始终是什么版本?由于不同的构建处于测试的许多阶段,因此规划和部署这通常是一个非常重要的问题.
我是发布Java JAR(ear,jar,rar,war)文件的情况,我希望能够查看/在JAR中切换到作为已发布JAR源的同一分支,版本或标记.
如何最好地调整ant构建过程,以便svn checkout中的版本信息保留在创建的构建中?
我在思考:
添加一个VERSION文件,但有什么内容?
将信息存储在META-INF文件中,但在哪些属性下使用哪些内容?
将源复制到结果存档中
将svn:properties添加到所有源中,并在编译器保留的位置使用关键字
我最终使用svnversion方法(接受的anwser),因为它扫描整个子树而不是svn info,它只是查看当前文件/目录.为此,我在ant文件中定义了SVN任务,使其更具可移植性.
并非所有构建都会产生Web服务.由于应用程序服务器中的更新,部署之前的ear文件必须保持相同的名称.使文件可执行仍然是一个选项,但在那之前我只包括一个版本信息文件.
${revision.range}
参考:
svnrevision:http://svnbook.red-bean.com/en/1.1/re57.html
svn info http://svnbook.red-bean.com/en/1.1/re13.html subclipse
svn task:http: //subclipse.tigris.org/svnant/svn.html
svn客户端:http://svnkit.com/
在Ant脚本中使用svnversion命令获取修订号:
然后在EAR中的某处使用$ {svnversion}属性.我们将它放在EAR文件名中,但您也可以将其放在EAR内的自述文件或版本文件中,或者在EAR的META-INF/manifest.mf中指定版本: