Aşağıdaki uyarıyı alıyorum:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
Ne anlama geliyor?
Aşağıdaki uyarıyı alıyorum:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
Ne anlama geliyor?
Yanıtlar:
Basitçe ayarlayın includeantruntime="false"
:
<javac includeantruntime="false" ...>...</javac>
Kullanmak varsa javac
-Görev birden çok kez kullandığınız düşünebilirsiniz PreSetDef
kendi tanımlamak için javac
daima setleri olduğunu -Görev includeantruntime="false"
.
Gönderen http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :
Bunun nedeni Ant 1.8'de ortaya çıkan bir yanlış özelliktir. Sadece bu adın bir niteliğini javac görevine ekleyin, false değerine ayarlayın ve bunun olduğunu unutmayın.
Http://ant.apache.org/manual/Tasks/javac.html adresinden :
Ant çalışma zamanı kitaplıklarının sınıfyoluna dahil edilip edilmeyeceği; build.sysclasspath ayarlanmadığı sürece varsayılan olarak yes olur. Komut dosyasının davranışının çalıştığı ortama duyarlı olmaması için genellikle false olarak ayarlamak en iyisidir.
@Daniel Kutik'in belirttiği gibi presetdef
, iyi bir seçenektir. Özellikle kişi build.xml
, düzenleyemediği veya düzenlemeyi tercih etmediği birçok dosyaya sahip bir proje üzerinde çalışıyorsa (örn. Üçüncü taraflardan olanlar).
Kullanmak için aşağıdaki presetdef
satırları en üst düzey build.xml
dosyanıza ekleyin :
<presetdef name="javac">
<javac includeantruntime="false" />
</presetdef>
Şimdi sonraki tüm javac
görevler esas olarak devralınacaktır includeantruntime="false"
. Projeleriniz gerçekten çalışma zamanı kitaplıklarına ihtiyaç duyuyorsa, bunları açık bir şekilde yapı dosyalarınıza VEYA kümenize ekleyebilirsiniz includeantruntime="true"
. İkincisi de uyarılardan kurtulacak.
Sonraki javac
görevler istenirse bunu açıkça değiştirebilir, örneğin:
<javac destdir="out" includeantruntime="true">
<src path="foo.java" />
<src path="bar.java" />
</javac>
Kullanmaya karşı tavsiye ederim ANT_OPTS
. Çalışır, ancak uyarının amacını yener. Uyarı kişinin inşa biri olduğunu söyler belki başka bir sistemde farklı davranır. Kullanmak ANT_OPTS
bunu daha da olası hale getirir, çünkü şimdi her sistem ANT_OPTS
aynı şekilde kullanılmalıdır. Ayrıca, ANT_OPTS
tüm projelerinizde uyarıları bastırmak için küresel olarak geçerli olacak
presetdef
Ant olmayan görevler için benzer bir numara yapılabilir mi? Bunu denedim scalac
, ancak alt build.xml
dosyalar elle scalac
görevi tanımlamak zorunda olduğundan, üst düzeyde ayarladığım her şeyi geçersiz kılıyorlar.
Chet Hosey buraya güzel bir açıklama yazdı :
Tarihsel olarak Ant, javac görevine sunulan sınıfyoluna her zaman kendi çalışma zamanını dahil etti. Bu yüzden Ant ile birlikte gelen tüm kütüphaneler ve ant tarafından sunulan tüm kütüphaneler, ister beğensin ister istemesin otomatik olarak yapınızın sınıf yolundadır.
Muhtemelen çoğu insanın istediği bu olmadığına karar verildi. Şimdi bunun için bir seçenek var.
Eğer "true" seçerseniz (includeantruntime için), en azından derleme sınıfyolunuzun Ant çalışma zamanını içereceğini bilirsiniz. "False" seçeneğini seçerseniz, derleme davranışının eski sürümler ve 1.8+ arasında değişeceğini kabul edersiniz.
Bu uyarıyı gördüğünüz için rahatsız olduğunuzda, yapılarınız tamamen kırılırsa daha az mutlu olacaksınız. Bu varsayılan davranışı korumak, değiştirilmemiş derleme dosyalarının Ant sürümleri arasında tutarlı bir şekilde çalışmasını sağlar.
Daniel'in yanıtı mükemmel çalışıyor. İşte benim build.xml için eklediğim örnek bir snippet:
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
<!-- ^^^^^^^^^^^^^^^^^^^^^^^^^ -->
<classpath>
<path id="application" location="${jar.dir}/${ant.project.name}.jar"/>
<path id="junit" location="${lib.dir}/junit-4.9b2.jar"/>
</classpath>
</javac>
</target>
Eğer benim gibi komut satırından çalışmak gibi hızlı cevap yürütme
export ANT_OPTS=-Dbuild.sysclasspath=ignore
Ve sonra karınca betiğini tekrar çalıştır.
set ANT_OPTS=-Xms40M -Xmx512M -Dbuild.sysclasspath=ignore
.
<property name="build.sysclasspath" value="last"/>
Build.xml dosyanızda kullanın
Daha fazla bilgi includeAntRuntime
için Ant javac'ta arama yapın
Diğer olası değerler burada bulunabilir
Ben aynı karşı karşıya, ben program ve özellik check-in. tutulması karınca için eski ayarım (jdk1.6.0) ile uyumlu olmayan jdk1.8 için bir güncelleme var. Bu güncelleştirmeyi yükledim. şu an karınca projem başarılı olmak.
Deneyin, umarım bu yardımcı olacaktır.