我正在使用Eclipse、Subclipse和ANT。我想从repo中生成一个包含已更改,添加,更新,删除的文件的构建清单(在我当前系统上具有单独的版本号)。
<propertyfile file="${dist.dir}deploymentManifest.txt"
comment="This file is automatically generated - DO NOT EDIT">
<entry key="buildtime" value="${builtat}"/>
<entry key="build" value="${svnversion}"/>
<entry key="version" value="${version}"/>
<entry key="systemLocation" value="${directory/filename.ext}"/>
</propertyfile>
如何从Eclipse中的文件中剥离这些信息?或者我如何使用ANY来检索此信息?
谢谢,弗兰克。
那么,${buildtat}
可以从Ant中的<tstamp>
任务中提取。其他的可以通过执行svn log --xml
,然后使用<xmlproperties>
任务生成的XML来解析。Right off the top of my head(即没有错误检查):
<!-- Gets the Time Stamp -->
<tstamp>
<format property="buildtat" pattern="MM/dd/yyyy HH:MM"/>
</tstamp>
<!-- Generates the revision information you need-->
<exec
executable="svn"
output="${svn.log.file}">
<arg line="log --xml -rHEAD/>
</exec>
<!-- Reads that information into a Property -->
<xmlproperty file="${svn.log.file}"/>
<echo message="Subversion Rev: ${log.logentry{revision}}"/>
然而,我建议你看看像Jenkins这样的持续构建系统。每当您在Subversion存储库中进行更改时,Jenkins都会拾取该更改并自动执行新的构建。这不仅允许您验证更改不会破坏构建,而且Jenkins还可以做其他事情,例如运行JUnit测试。Jenkins然后将构建和测试结果以及整个构建日志存储在一个易于访问的HTML页面中。
Jenkins将为你工作的地方是,Jenkins将自动公开Subversion修订等内容作为构建过程的一部分。你可以获取Subversion Revision, Jenkins build number, Jenkins项目的名称以及许多其他的环境变量。然后,你可以这样做:
<property env="env."/>
<propertyfile file="${dist.dir}deploymentManifest.txt"
comment="This file is automatically generated - DO NOT EDIT">
<entry key="buildtime" value="${env.BUILD_ID}"/>
<entry key="build" value="${env.SVN_REVISION}"/>
<entry key="version" value="${BUILD_NUMBER}"/>
<entry key="systemLocation" value="${directory/filename.ext}"/>
</propertyfile>
看看詹金斯。它相当容易理解和使用。
下载大约需要5分钟,在Linux系统上启动和运行可能需要10分钟。Windows则更为复杂,启动和运行可能需要15到20分钟的时间。您现在可以在桌面系统上运行它,并使用它。
你应该再花半个小时来弄清楚如何设置一个项目,它可以在有人提交时自动进行构建。
Jenkins是基于web的,但是自带轻量级的基于web的应用引擎。您只需要Java 1.6就可以运行它。(如果您使用的是Eclipse,您应该已经有了)。