我使用QAF, ant作为构建脚本,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。通过提供各自的值true
或false
,属性skip.download
提供给下载ivy ON或OFF。
现在的问题是我在构建中为skip.download
提供的任何值。属性,它认为它是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>
我找到了解决方案,作为解决方案,需要删除或注释该属性才能跳过下载。
是否有任何方法可以使属性值与除非正常工作目标中的属性?
我使用以下目标来安装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加载第三方扩展的标准位置之一。