当收到报告或一个吧-不会-工作的消息我的一个首字母缩写的问题始终是什么?与一个不同的建立在许多阶段的试验,规划和部署这往往是一个不平凡的问题。

我的情况下释放Java罐子(耳罐子,rar、战争)的文件我想要能够看到在在罐子开关于相同的分支,版本或标记的根源所释放的罐子。

如何才能最好地调整蚂蚁建立过程,以便版本中的信息svn结帐仍然在创建?

我想沿线:

  • 增加一个版本的文件,但有些什么内容?
  • 存储的信息,在META-INF文件,但在什么样的酒店与其中的内容?
  • 复制源成的结果的归档
  • 加svn:性所有来源的关键字的地方编译器叶他们

我最终使用svnversion的做法(所接受的明显的下降),因为它可以扫描整个子树而不是svn的信息这只是看起来在当前文件的/目录。为此,我定义的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服务.耳文件在部署之前必须保持相同的名称,因为更新的应用程序服务器。使文件可执行仍然是一个选项,但直到那时我只包括一个版的信息文件。

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

有帮助吗?

解决方案

使用 svnversion 命令你的蚂蚁脚本,获得修订编号:

<exec executable="svnversion" outputproperty="svnversion" failonerror="true">
  <env key="path" value="/usr/bin"/>
  <arg value="--no-newline" />
</exec>

然后再用 ${svnversion} 酒店的地方,在你的耳朵。我们把它放在耳文件的名称,但你也可以把它放在一个readme或版本文件的内耳,或指定的版本中的耳朵 META-INF/清单。mf:

<!-- myapp-r1234.ear -->
<property name="ear" value="myapp-r${svnrevision}.ear" />

其他提示

你想要提供的颠复分支和储存库的数量。作为讨论 如何访问当前的颠复建立的号码?, , svn info 命令将给你这些信息,然后你就可以用来建立一个版本的文件或任何其他文件,你在建筑物入你的*AR文件。如果你没有别介意,你可以考虑使用 XmlProperty蚂蚁的任务 提取相关信息输出 svn信息--xml命令

检查出来的 jreleaseinfo 的项目。包含一个蚂蚁的任务,可以产生java类可以被称作在运行时,以显示在发布信息的项目。

我喜欢它的简洁。

也看到这个问题: 建立和版本的编号为Java项目(蚂蚁,cvs,哈德逊)

它包括一些有用的代码段。

从上我的头脑。标记每个罐子里建立?

我们的第一部分,我们建立创建一个version.txt 文件中的根源的包装和倾倒的标签用于检查的码从(在我们的情况下)简历...此外,最后一部分的我们的生成过程中检查的全面建耳朵回到CVS为未来参考。

这样,如果我们有一个问题与一个网络应用程序-它只是一个情况下,要求记者打/app/version.txt -从那里我们可以深入特定的建立历史记录在CVS找到相关的组成部分(处理不同版本的图书馆应用程序)定位错误。

不知道该如何许多的帮助,这是对我们的支持民间-但这是肯定的东西,他们抱怨 在那里!

做自动生成和地方一标签(日期标记)的代码当的建立是成功的(与单元测试当然).

在你的交付过程中,只提供标记的建造给客户。这样,你是在控制,并且可以把标签名readme.txt 地方,或者有名的耳朵文件反映tagname.

我个人换回来历,这是原因之一。在历,我可以有一个类报告的标签。我所有的罐子文件包含一个"主要的",这使得他们可运行.与支持问题,我要求客户要做一个"java-罐子somejar.jar"和输出发送到我旁边的问题。

这样我肯定的建立他们的重新使用,并且我甚至可以有信息java这样的版本、操作系统的类型和版本。没有客户具有回答奇怪的问题。

这很简单但却非常有效的。

为什么不把建立数到一个属性文件...这个然后可以很容易地读通过java和输出到帮助|关于对话(小程序/应用程序),网页的脚注或任何其他GUI你可能有。

(见本页脚上的每一个SOF。有SVN版本的编号。)

似乎是一个装载更易于在战争/耳/罐等容易的时间?

我储存的绝对储存库中的修订作为其一部分的我的完整版本数字。这给人们一眼看到,如果给定的改动是在给定的版本或没有。

我们还储存的版本号/建造日期/etc清单文件中的耳朵如定性,这些是主要仅供参考。我们也储存在一个属性文件,是建成我们的罐子,所以应用可以读它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top