Ant Deploy Windows构建清单SVN

时间:2011-12-13 14:12:49

标签: eclipse deployment ant build manifest

我是大家,我正在使用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来检索此信息?

谢谢, 弗兰克

1 个答案:

答案 0 :(得分:1)

好吧,${buildtat}可以从Ant中的<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>

看看詹金斯。这很容易理解和使用。

在Linux系统上下载大概需要5分钟,可能需要10分钟才能启动并运行。 Windows更复杂,启动和运行可能需要15到20分钟。您现在可以在桌面系统上运行它,并使用它。

你可能需要另外半个小时来弄清楚如何设置一个项目,只要有人提交就可以自动进行构建。

詹金斯是基于网络的,但它有自己的轻量级基于Web的应用程序引擎。您只需要Java 1.6即可运行它。 (而且,如果您正在使用Eclipse,那么您应该已经拥有了它。)