Bu özel soru birkaç kez sorulmuştur, ancak memnuniyetimden değil. Önerilen geçici çözümlerle gerçekten ilgilenmiyorum, ama aslında yapmak istediklerimi nasıl yapacağım.ANT CLASSPATH öğesinin build.xml içinde ayarlanması
Bunun mümkün olmadığı için bunun neden mümkün olmadığı konusunda tatmin edici bir açıklama yapmak isterim ve bunun için bir düzeltme önermeyi teklif edeceğimden, bu kadar basit görünen bir şeyin neden olmadığını anlamak istiyorum. denendi.
Halen kavanoz bir dizi karınca için kullanılabilir olmasını sağlamak için, aşağıdaki yaklaşımlardan biri uygulanmalıdır:
CLASSPATH
ortam değişkeni eklemek -- eklemek belgelerinde "önerilmez"
$ANT_HOME/lib
veya~/.ant/lib
- yapı ortamında yapılandırma ant
çağırma
-lib
parametresini ayarlayın gerektirir
Son seçenek, tercih edileni olarak üzerinde durduğum şeydi, ancak yine de yapıyı çağıran kişi tarafından bazı geliştirme işlemleri gerektiriyor (geliştirme depomda ant
sarmalayıcı komut dosyasında yakaladığım). Özellikle
böyle the documentation göre kurulması gerektiğini Schematron Ant görevi çağırmak çalışıyorum:
<taskdef name="schematron"
classname="com.schematron.ant.SchematronTask"
classpath="lib/ant-schematron.jar"/>
ancak bu, saxon üzerinde geçişli bağımlılığı var CLASSPATH
üzerinde saxon.jar
mevcut olmadan, böylece oluşturma işlemi başarısız olur:
java.lang.NoClassDefFoundError: net/sf/saxon/TransformerFactoryImpl
ant documentation itself bu ekalır taskdef kendisi olması gerektiğini önermek devam ediyorgirişleri, ama bunu şematron ant-göreviyle boşa çıkarmaya çalıştım.
Önemli sorular, bunu desteklemesi gereken şematron ant görevinin mi olacağı yoksa ant build.xml'in kendi sınıf içinde kendi sınıf yapılandırmasına sahip olması için mi mümkün olmalıdır? Bu insanlar oldukça sık yapmak isteyeceği bir şey sanki
görünüyor ve karınca docs beri kendilerini build.xml kendi içinde alternatif yok şaşırdım CLASSPATH kendileri kullanmayan tavsiye!