gpt4 book ai didi

ant - 询问用户是|否输入

转载 作者:行者123 更新时间:2023-12-04 14:34:24 25 4
gpt4 key购买 nike

我正在为使用以下格式的版本控制的应用程序进行 Ant 构建过程:major.minor.buildcount。所以目前应用程序大约是 2.1.52,我们使用的是 2.1 版本,并且已经有 35 个版本。

我现在正在添加一个 ant 目标,以询问用户是否要升级主要版本和/或次要版本。

当我从命令行运行我的目标时,我想遵循以下几点:

@@ ant version
Versioning application...
Would you like to advance the major version to 3? (Y|n)
@@ n
Not Advancing major version
Would you like to advance the minor version to 2? (y|N)
@@ y
Advancing minor version

以@@ 开头的行是我想要的用户输入。我的主要和次要版本存储在 build.properties 文件中。

到目前为止,这是我的代码
<?xml version="1.0"?>
<project name="StudentMS" default="zip" basedir=".">
<propertyfile file="./.ant/build.properties">
<entry key="version.buildnumber" type="int" default="0" operation="+" pattern="00" />
</propertyfile>

<property file="./.ant/build.properties" />
<property name="sourceDir" location="/Users/dave/Workspace/ColdFusion/StudentMs" />
<property name="buildDir" location="${sourceDir}/builds" />

<target name="version" description="Adds a major and minor version to the build.">
<input message="Advance major version? ${version.major}" addproperty="updatemajor" validargs="y,n" defaultvalue="n" />
<propertyfile file="./.ant/build.properties">
<entry key="version.major" type="int" default="0" operation="+" pattern="00" />
</propertyfile>

<input message="Advance minor version? ${version.minor}" addproperty="updateminor" validargs="y,n" defaultvalue="y" />
<propertyfile file="./.ant/build.properties">
<entry key="version.minor" type="int" default="0" operation="+" pattern="00" />
</propertyfile>
</target>
</project>

还有我的 build.properties
#Tue, 29 Mar 2011 11:46:30 -0400
version.buildnumber=35
version.major=2
version.minor=1

我对 Ant 还是很陌生,所以很抱歉我不能发布更高级的代码。所以我需要做的第一件事是在我的属性文件编辑周围添加某种条件。

最佳答案

您可以通过组合条件和 antcall 任务并添加几个额外的目标来实现您想要的。

我认为这样的事情应该有效:




<property file="./.ant/build.properties" />
<property name="sourceDir" location="/Users/dave/Workspace/ColdFusion/StudentMs" />
<property name="buildDir" location="${sourceDir}/builds" />

<target name="version" description="Adds a major and minor version to the build.">
<input message="Advance major version? ${version.major}" addproperty="updatemajor" validargs="y,n" defaultvalue="n" />

<condition property="executeMajor">
<and>
<isset property="updatemajor" />
<equals arg1="${updatemajor}" arg2="y" />
</and>
</condition>

<antcall target="update_major" />

<input message="Advance minor version? ${version.minor}" addproperty="updateminor" validargs="y,n" defaultvalue="y" />

<condition property="executeMinor">
<and>
<isset property="updateminor" />
<equals arg1="${updateminor}" arg2="y" />
</and>
</condition>

<antcall target="update_minor" />

</target>

<target name="update_major" if="executeMajor">
<!-- Code to update major here -->
</target>

<target name="update_minor" if="executeMinor">
<!-- Code to update minor here -->
</target>

基本上,它所做的只是在 updatemajor/updateminor 设置为“y”的情况下设置 executeMajor 和 executeMinor 属性。然后,只要设置了 executeMajor/Minor 变量,ant 就会运行更新目标,否则它将跳过它们。

关于ant - 询问用户是|否输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com