当前位置: 首页 > 面试题库 >

内部版本号:major.minor.revision

宗弘扬
2023-03-14
问题内容

您如何build.xml使用既不使用自定义代码也不使用外部依赖关系(例如Shell脚本)的文件来编写:

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

另外:

  • 提供增加主号码的选项。
  • 提供增加小号的选项。
  • 主编号递增时,次编号和修订版本号设置为0。
  • 每当次要编号递增时,修订号就会设置为0。

奖金:

  • 根据git修订版本号(如Subversion修订版本号)创建变量。

澄清:

  • 不需要自动检出(或提交)。
  • 不需要与Subversion集成。

感谢您的任何示例。以下是一些相关站点,这些站点描述了如何执行类似的任务:

  • 用Ant 创建内部版本号。
  • 使用BuildNumber Ant任务。
  • Ant和内部版本号。

问题答案:

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>


 类似资料:
  • 问题内容: 我的问题与 iTunes Connect 中版本和内部版本号的限制有关。我们只允许3个非负整数,并且内部版本号必须是递增的。 我正在设置一个 Jenkins 作业,以将我的构建自动上传到 iTunes Connect, 以便测试人员可以下载它们。 问题: 我们如何确保递增的内部版本号?即使我们在每次提交之前都在Xcode中手动更改了它(这似乎是错误的),也有多个开发人员在项目上工作,所

  • 问题内容: 我在詹金斯有一份工作(称为BIGJOB);几个构建步骤是使用参数化触发器插件来触发其他作业(称为SMALLJOB)的构建,然后等待它们完成。我需要做的是从SMALLJOB上触发的构建中检索工件。 最初,我认为我可以使用Copy Artifact插件从触发的SMALLJOB的“最后构建”中检索工件。当一次仅运行一个SMALLJOB时,这确实可以可靠地工作。 但是我运行了多个BIGJOB,

  • 问题内容: 如何设置Flutter应用程序的版本名称和版本代码,而不必进入Android和iOS设置? 在我的pubspec.yaml中 但我看不到内部编号的地方。 问题答案: 您可以在 pubspec.yaml 中的同一位置更新版本名称和版本代码号。只需将它们与标志分开即可。例如: 这表示 版本名称是 版本代码是 在新项目的文档中对此进行了描述(但是,如果您正在处理旧项目,则可能已将其删除):

  • +++ get:/ <<< success { "code":1, "msg":"恭喜您,API访问成功!", "data":{ "version":"1.0.0", "doc":"http://www.kancloud.cn/thinkcmf/cmf5api" } } +++

  • 问题内容: 我正在通过Jenkins运行量角器测试用例,并使用SauceLabs作为执行环境。我正在使用量角器黄瓜框架。我想从Jenkins传递内部版本号,以便可以将其传递给SauceLabs来组织我的测试执行结果。 我尝试了这篇文章中提到的参数 https://moduscreate.com/blog/protractor_parameters_adding_flexibility_automa

  • iOS应用程序的版本/构建字段包括: > “version”CFBundleShortVersionString(String-IOS,OS X)指定绑定的发行版本号,它标识应用程序的已发行迭代。发行版本号是一个字符串,由三个以句点分隔的整数组成。 “build”CFBundleVersion(String-IOS,OS X)指定包的生成版本号,该版本号标识包的迭代(已发布或未发布)。生成版本号应