当收到错误报告或无法工作的消息时,我的一个首字母缩写问题始终是什么版本?在测试的很多阶段有不同的构建,规划和部署这通常是一个不平凡的问题。我希望能够在JAR中查看/切换到相同的分支,版本或标签,这些分支,版本或标签是源代码的源代码。发布JAR。如何最好地将Subversion版本信息存储在EAR中?
如何最好地调整ant构建过程,以便svn checkout中的版本信息保留在创建的构建中?
我的线沿线的思考:
- 增加一个版本的文件,但有什么内容呢?
- 将信息存储在META-INF文件中,但在哪些属性下具有哪些内容?
- 复制源到结果归档
- 加入的svn:属性,所有来源的关键字的地方编译器留给他们是
我结束了使用svnversion,如果方法(接受anwser)因为它扫描整个子树,而不是只查看当前文件/目录的svn info。为此,我在ant文件中定义了SVN任务,以使其更加便携。
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask">
<classpath>
<pathelement location="${dir.lib}/ant/svnant.jar"/>
<pathelement location="${dir.lib}/ant/svnClientAdapter.jar"/>
<pathelement location="${dir.lib}/ant/svnkit.jar"/>
<pathelement location="${dir.lib}/ant/svnjavahl.jar"/>
</classpath>
</taskdef>
并非所有的构建都会导致web服务。由于应用程序服务器中的更新,部署前的ear文件必须保持相同的名称。使文件成为可执行文件仍然是一种选择,但在此之前我只包含一个版本信息文件。
<target name="version">
<svn><wcVersion path="${dir.source}"/></svn>
<echo file="${dir.build}/VERSION">${revision.range}</echo>
</target>
参考文献:
svnrevision:http://svnbook.red-bean.com/en/1.1/re57.html
SVN信息http://svnbook.red-bean.com/en/1.1/re13.html
Subclipse的SVN任务:http://subclipse.tigris.org/svnant/svn.html
svn客户端:http://svnkit.com/
I SvnTask比在接受的答案中运行“svnversion”更加便于携带吗? – 2008-10-14 11:02:00