2016-11-12 1 views
0

Ich verwende QAF mit Ant als Build-Skript und IVY als Abhängigkeitsverwaltungstool. Um die automatische Efeu installieren Sie den Build-Skript haben folgende ant Ziel:Ant-Ziel mit, wenn Attribut nicht Eigenschaft Wert

<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> 

Es build.properties ist, wo Eigentum skip.download vorgesehen zum Download-Efeu ON oder OFF durch entsprechenden Wert true oder false bereitstellt.

Jetzt ist das Problem, was auch immer ich für skip.download in build.properties trueund immer führt das Ziel (Downloads ivy).

#not working 
skip.download=false 

I bezeichnet IVY + Ant documentation, wo es ähnliches folgendes Ziel mit unterschiedlichen Eigenschaftsnamen hat.

<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> 

Ich habe eine Problemumgehung gefunden und als Workaround muss diese Eigenschaft entfernt oder kommentiert werden, um den Download zu überspringen.

Gibt es eine Möglichkeit, so dass der Wert der Eigenschaft gut funktioniert, es sei denn Attribut in Ziel?

Antwort

1

Ich verwende das folgende Ziel, um Efeu zu installieren. Beachten Sie, wie es die verfügbare Aufgabe verwendet, um zu bestimmen, ob Efeu bereits installiert ist:

<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> 

Hinweis:

  • Das Verzeichnis "$ HOME/.ant/lib" eine der Standard-Standorte ist Efeu verwendet, um Erweiterungen von Drittanbietern zu laden.
Verwandte Themen