2012-05-17 8 views
5

W jaki sposób rozbrajasz nieruchomość w mrówce? więc to jest całkowicie usunięte jako własność?Odzbrajanie właściwości w mrówce i usuwanie własności w mrówce przy użyciu warunku

<condition property="proguard.config" value="proguard.cfg"> 
     <isset property="proguarded"/> 
</condition> 


<condition property="proguard.config" value=""> 
     <not> 
     <isset property="proguarded"/> 
     </not> 
</condition> 

Wygląda na to, że działa. Jednak proguard działa, nawet jeśli istnieje taka właściwość jak proguard.config. Więc jak usunąć proguard.config jako własność w całości warunkowo? Wiem, że jeśli proguard zauważy, że istnieje w ogóle właściwość proguard.config w pliku .properties, uruchomi się.

Odpowiedz

8

W Ant manual Property Task stany:

właściwości są niezmienne: kto ustawia właściwość najpierw zamraża go do pozostałej części kompilacji; zdecydowanie nie są zmiennymi.

Mając na uwadze powyższe, istnieje kilka obejścia:

  1. Local Task - Właściwość lokalnego w danym zakresie „cieni” właściwości tej samej nazwie w wyższych zakresach (szczególnie przydatna w ciągu Macrodefs)

  2. Ant-Contrib Variable Task - Ant-Contrib oferuje elastyczność, ale także dodaje zależność i czasami może kusić, aby napisać kod Ant proceduralne, które mogą być lepiej wyrażone w Ant skryptu lub zwyczaj Ant zadania


W przykładzie powyżej, jeżeli nieruchomość proguarded nie zmienia się w trakcie wykonywania swojej Ant projektu, to nie ma potrzeby, aby rozbroić nieruchomości. Na przykład można warunkowo wykonać cele w następujący sposób:

<target name="proguarded-target" if="proguarded"> 
    ... 
</target> 

<target name="not-proguarded-target" unless="proguarded"> 
    ... 
</target> 
Powiązane problemy