2011-12-13 98 views
0

我每个人,我使用Eclipse,Subclipse和ANT。我想生成一个构建清单,其中包含已经从回购库中更改,添加,更新和删除的文件(以及当前系统中的单个版本号)。蚂蚁部署Windows生成清单SVN

<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检索这些信息?

感谢, 弗兰克

回答

1

好,${buildtat}可以从蚂蚁的<tstamp>任务作出。其他人可以通过执行svn log --xml然后使用<xmlproperties>任务产生的XML来解析。马上我的头顶部(即没有错误检查):

<!-- 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 Revision这样的东西,作为构建过程的一部分。您可以获取Subversion修订版,Jenkins内部版本号,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分钟的时间下载,也许10分钟就可以在Linux系统上启动并运行。 Windows更复杂,可能需要15到20分钟才能启动并运行。您现在可以在桌面系统上运行它,并使用它。

它应该需要你花半个小时才能找出如何设置一个项目,每当有人提交时自动生成项目。

詹金斯是基于Web的,但自带轻量级基于Web的应用程序引擎。所有你需要的是Java 1.6来运行它。 (而且,如果你使用Eclipse,你应该已经有了)。

+0

谢谢。我会研究它:) –