2008-09-25 20 views
6

Görevi kullanırken, kaynak (dosya adı) mevcutsa, özellik yalnızca TRUE olarak ayarlanır. Değilse, özellik tanımsızdır.Ant ve mevcut görev - bir şey yoksa ne olur?

Özelliğin değerini yazdırdığımda, kaynak kullanılabilir olduğunda doğru olur, ancak aksi takdirde özellik adı yazdırılır.

Kaynak kullanılabilir değilse, özelliği bir değere ayarlamanın bir yolu var mı? Ben mevcut çek önce açıkça özelliğini ayarlayarak denedi, ama sonra karınca yakınır:

 
[available] DEPRECATED - used to override an existing property. 
[available] Build file should not reuse the same property name for different values. 

cevap

2

Bunun nedeni Davranışlar, hedeflerdeki if/without-nitelikleridir. Böyle bir özelliğe sahip olan hedef, adı taşıyan bir özellik belirtilmediyse/yapıldığında yürütülür. Eğer false olarak ayarlanmışsa veya true olarak ayarlanmışsa, hiçbir fark olmaz. Bu nedenle, bir özelliği ayarlamak ve (veya kullanmamak) için mevcut görevi kullanabilir ve bu görevi (veya bir) yürütme (veya yürütme) temelinde yapabilirsiniz. Mevcut görevden önce özelliği ayarlamak çözüm değildir, çünkü karıncadaki özellikler değişmez olduğundan, bunlar ayarlandıktan sonra değiştirilemez.

  1. Sen ile birlikte kullanılabilir-görev kullanın: unset önce eğer

    üç olası çözümü vardır, bir değeri bir özelliği ayarlamak için.

  2. Özellik ayarlandığında, yalnızca özelliği kaldırılmışsa (görevin niteliği belirtilmedikçe) gerçekleştirilecek bir özellik oluşturursunuz.
  3. numaralı telefonu aramadan sonra özelliğini ayarlayın. Özellik sadece unset ise değiştirilecek gibi, bu ne istediğinizi yapacağız. Zaten uygunluk çekle true ayarlanmamış ise
8
<available filepath="/path/to/foo" property="foosThere" value="true"/> 
<property name="foosThere" value="false"/> 

foosThere atanması sadece başarılı olacaktır.

İlgili konular