当前位置: 首页 > 知识库问答 >
问题:

具有除非属性不考虑属性值的 Ant 目标

胥宏义
2023-03-14

我使用QAF和ant作为构建脚本,IVY作为依赖管理工具。为了自动安装ivy,构建脚本有以下ant目标:

<target name="download-ivy" unless="skip.download">
    <mkdir dir="${ivy.jar.dir}" />
    <!-- download Ivy from web site so that it can be used even without any 
        special installation -->
    <echo message="installing ivy..." />
    <get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" dest="${ivy.jar.file}" usetimestamp="true" />
</target>

有一些 build.属性,其中属性 skip.下载提供下载常春藤 ON 或 OFF 通过提供相应的值

现在的问题是,无论我为skip.download提供什么值build.properties它都认为为true,并且总是执行目标(下载ivy)。

#not working
skip.download=false

我参考了IVY Ant文档,其中它具有类似的具有不同属性名称的以下目标。

<target name="download-ivy" unless="offline">

    <mkdir dir="${ivy.jar.dir}"/>
    <!-- download Ivy from web site so that it can be used even without any special installation -->
    <get src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" 
         dest="${ivy.jar.file}" usetimestamp="true"/>
</target>

我找到了解决方法,作为解决方法需要删除或注释该属性才能跳过下载。

是否有任何方法可以使属性值与目标中的除非属性一起正常工作?


共有1个答案

刁俊人
2023-03-14

我使用以下目标来安装ivy。请注意它如何使用可用任务来确定是否已安装ivy:

<available classname="org.apache.ivy.Main" property="ivy.installed"/>

<target name="install-ivy" description="Install ivy" unless="ivy.installed">
    <mkdir dir="${user.home}/.ant/lib"/>
    <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"/>
    <fail message="Ivy has been installed. Run the build again"/>
</target>

注意:

  • 目录“$HOME/.ant/lib”是 ivy 用于加载第三方扩展的标准位置之一。
 类似资料:
  • 主要内容:1. Apache Ant内置属性,Apache Ant用户定义的属性属性是键值对,其中每个值都与键相关联。属性用于设置可在构建文件中的任何位置访问的值。 设置属性后,无法更改。 Apache Ant提供了标记,可用于设置属性。 Apache Ant属性类型有两种: 内置属性 用户定义的属性 1. Apache Ant内置属性 Apache Ant提供了各种内置属性,我们可以在构建文件中访问所有这些属性。 下面的表中给出了一些内置属性。 属性 描述 用于项目基础的绝

  • 问题内容: 内容: 我要从更改为。这是我的代码: 输出内容: 其他属性将被删除。我想更新一个特定的属性值,而不删除其他属性。 问题答案: 关闭输入流后,打开输出流并存储属性。

  • 我是网络开发新手,所以这可能是非常基本的。如果datainfo prop变量不是空的,我想向div标记添加一个数据属性 但是现在,如果datavalue是空的,则data属性会添加一个空值。相反,我希望它根本不会出现在div标签中。 我可以在JSX子句中添加整个内容吗?

  • 问题内容: 我正在做一个Django项目,当我尝试访问127.0.0.1:8000/articles/create时,我的Ubuntu终端出现以下错误: 另外,在访问我的实际本地主机站点时,我还收到以下错误消息: 这是我的forms.py文件: 这是我的views.py文件: 我不确定如何解决此问题。我查看了Django文档,但找不到解决问题的方法,因此将不胜感激。 问题答案: 对于你的表单,这是

  • 问题内容: 我正在使用JavaScriptSerializer序列化一些实体对象。 问题是,许多公共属性都包含空值或默认值。有什么方法可以使JavaScriptSerializer排除具有null或默认值的属性? 我希望得到的JSON不再那么冗长。 问题答案: 对我有用的解决方案: 序列化的类和属性将如下装饰: IsRequired是关键项。 实际的序列化可以使用DataContractJsonS

  • 我需要使用属性名称替换xml文件中的属性值。 前任: 我有一个替换此值的目标。i、 e“默认值”。如果用户为属性测试名称指定了错误的值,则可以多次运行此目标。用户可以使用正确的值重试运行目标。因此,我不能使用正则表达式替换。我只能依靠物业名称。有没有一种方法可以在ant中使用属性值的名称来替换属性值?