ANT'de tek bir hedefi nasıl çalıştıracağımı biliyorum, ancak "öznitelik" özniteliğini de denetler ve hedeften önce bunları çalıştırır. Bunu daha kolay bir şekilde yapabilmem için bunu veya ANT dosyamı yapılandırmanın bir yolunu engellemenin bir yolu var mı?ANT - Bağımlılık olmaksızın tek bir hedef belirleme
cevap
Hedefin bir "engelsiz" sürümünü oluşturun. Eğer
<target name="A" depends="B,AwithoutDeps"/>
<target name="AwithoutDeps">
...
</target>
değiştirin
<target name="A" depends="B">
...
</target>
olsaydı Şimdi (AwithoutDeps ardından B ateşlemesi olacaktır) ya da sadece açıkça AwithoutDeps diyoruz A normal çağırabilir ve hiçbir deps ateş etti. bunlardan daha bazı iyi isimler seçin Tabii
[sırayla bağımlılıkları "bağlıdır" çağrıları unutmayın];)
Buradaki tek basit seçiminiz, sadece söz konusu hedefin bir kopyasını yapmak ve bağımlılıkları olmamasıdır.
Artık öznitelik niteliklerini şimdi kaldırıyorum (ki bu neredeyse aynı şeydir), ama muhtemelen daha temiz bir çözüm için merak ediyorum. – GreenieMeanie
Bu, karınca komut satırı için bir seçenek olması güzel olurdu. – user959690
Böyle bir şey yapacağını:
<target name="doSomethingNoDeps">
...
</target>
<target name="doSomething" depends="doSomeOther">
<antcall target="doSomethingNoDeps"/>
</target>
Bir olasılık kullanmaktır Bağımlılık hedef (ler) ine ilişkin if
veya unless
özniteliği. Örneğin:
<target name="dependency1" unless="dependency1.disabled">
<echo>Hello from dependency 1!</echo>
</target>
<target name="dependency2" unless="dependency2.disabled">
<echo>Hello from dependency 2!</echo>
</target>
<target name="main-target" depends="dependency1, dependency2">
<echo>Hello from the main target!</echo>
</target>
Şimdi istemediğiniz bağımlılıkları bırakmak -Ddependency1.disabled=true
ve/veya -Ddependency2.disabled=true
ile Ant çalıştırabilir, ancak varsayılan hala onları dahil etmek olacaktır.
Ve tabi ki, sizin için daha kolay olan bir "global" dependencies.disabled
özelliğine sahip olabilirsiniz. Eğer (bağımlılıklar varsayılan olarak hariç) bu davranışın sohbet yapmak istiyorsanız
, sadece if
yerine unless
kullanımı (ve bunun yerine "engelli" nin "dependency1.enabled" gibi mülkiyet isimleri var) .
Makroyu bir parça kodla yaptım, istediğimi. Sonra 2 hedef yaptı, 1 "arg1" ile makro çağırır, 2 "arg2" ile. Ayrıca, ayar parametreleri olmadan makro da yapabilirsiniz.
bir Cevap, sorunun nasıl çözüleceğini göstermelidir. Ne yaptığını göster. –
- 1. Hedef bağımlılık nedir?
- 2. Hedef dosya Ant NetBeans projesinde
- 3. Çift/tek sayıları (tamsayılar) belirleme?
- 4. Tek bir başlıktaki kitaplıktaki döngüsel bağımlılık
- 5. Ant.
- 6. ANT
- 7. Ant + ivy/maven gibi objektifler için oluşturma ve bağımlılık araçları?
- 8. Ant yol kavanozu kavanozlarına Ant
- 9. Bir PR'nın hedef şube
- 10. Tek kullanımlık sınıfları yönetme Bağımlılık Enjeksiyon
- 11. Ant
- 12. ANT
- 13. Ant.
- 14. Ant
- 15. ANT
- 16. Ant
- 17. Ant
- 18. Grunt-contrib-jasmine ile tek bir özellik belirleme
- 19. javascript öğesinden bir tam stil dizesi belirleme (tek tek stil parametreleri değil)
- 20. FragmentActivity olmaksızın DialogFragment
- 21. Maven ile bir Ant inşa etmek nasıl?
- 22. Ruby Bir istisna olmaksızın backtrace alın
- 23. Karmaşık bir sayı belirleme
- 24. hedef yeniden yürütmek
- 25. Tüm cihaz testlerini Ant builder ile çalıştır
- 26. Bir kavanoza ant junit batchtest
- 27. Apache ANT
- 28. İnce Taneli Denetim olmaksızın birçok sütun içeren bir tabloyu denetleme
- 29. Ant skp görev hatası
- 30. Tek bir JVM
Benim çözümüme çok benzer - Bence farklılık sadece bir stil sorunudur. Bu, karınca bağımlılık işlevini kullanır, çözümüm "kapsülleme" işlevini kullanır. – Jared
Teşekkürler! Bu kopyalama ve yapıştırmadan daha temiz görünüyor. – GreenieMeanie
@Jared - Ben de antcall hakkında düşündüm, ama özellikleri ve böyle bir kopyasını kurar gibi, daha pahalı AFAIK. Olsa da bu büyük bir anlaşma değil ... –