内部版本号:major.minor.revision [英] Build numbers: major.minor.revision

查看:43
本文介绍了内部版本号:major.minor.revision的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您将如何编写 build.xml 文件,既不使用自定义代码也不使用外部依赖项(例如 shell 脚本):

How would you write a build.xml file, using neither custom code nor external dependencies (such as a shell script), that:

  • 生成格式为major.minor.revision(例如,01.02.34)的内部版本号.
  • 在每次编译源代码时自动增加修订版.
  • 在每次执行 dist(ribution) 任务时自动增加次要版本.

另外:

  • 提供增加主编号的选项.
  • 提供增加次要编号的选项.
  • 每当主编号增加时,次编号和修订编号都会设置为 0.
  • 每当次要编号增加时,修订号就会设置为 0.

奖励:

  • 根据 git 修订号(如 subversion 修订号)创建一个变量.
  • Creates a variable based on the git revision number (like a subversion revision number).

澄清:

  • 不需要自动签出(或提交).
  • 不希望与 Subversion 集成.

感谢您提供任何示例.以下是一些描述如何执行类似任务的相关网站:

Thank you for any examples. Here are some related sites that describe how to perform similar tasks:

  • Create a Build Number with Ant.
  • Using the BuildNumber Ant task.
  • Ant and Build Version Numbers.

推荐答案

build_info.properties 文件:

build.major.number=00
build.revision.number=00
build.minor.number=00

build.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="current-number">

<property file="build_info.properties"/>
<property name="build.number" value="${build.major.number}.${build.minor.number}.${build.revision.number}"/>

<target name="current-number">
 <echo>Current build number:${build.number}</echo>
</target>

<target name="compile">
   <antcall target="revision"></antcall>
</target>

<target name="dist">
  <antcall target="minor"></antcall>
</target>

<target name="revision">
    <propertyfile  file="build_info.properties">
            <entry key="build.revision.number" type="int" operation="+" value="1" pattern="00"/>
    </propertyfile>
</target>

<target name="minor">
    <propertyfile  file="build_info.properties">
            <entry key="build.minor.number" type="int" operation="+" value="1" pattern="00"/>
            <entry key="build.revision.number" type="int" value="0" pattern="00"/>
    </propertyfile>
</target>

<target name="major">
    <propertyfile  file="build_info.properties">
            <entry key="build.major.number" type="int" operation="+" value="1" pattern="00"/>
            <entry key="build.minor.number" type="int" value="0" pattern="00"/>
            <entry key="build.revision.number" type="int" value="0" pattern="00"/>
    </propertyfile>
</target>

<target name="all">
    <propertyfile  file="build_info.properties">
            <entry key="build.major.number" type="int" operation="+" value="1" pattern="00"/>
            <entry key="build.minor.number" type="int" operation="+" value="1" pattern="00"/>
            <entry key="build.revision.number" type="int" operation="+" value="1" pattern="00"/>
    </propertyfile>
</target>

</project>

这篇关于内部版本号:major.minor.revision的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆