Saya menerima peringatan berikut:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
Apa artinya ini?
Cukup atur includeantruntime="false"
:
<javac includeantruntime="false" ...>...</javac>
Jika Anda harus menggunakan javac
-task beberapa kali, Anda mungkin ingin mempertimbangkan PreSetDef
untuk menggunakan javac
-task sendiri yang selalu diset includeantruntime="false"
.
Dari http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :
Itu disebabkan oleh kesalahan pengenalan di Ant 1.8. Tambahkan saja atribut nama itu ke tugas javac, setel ke false, dan lupakan itu pernah terjadi.
Dari http://ant.apache.org/manual/Tasks/javac.html :
Apakah akan menyertakan perpustakaan run-time Ant di classpath; default ke yes, kecuali build.sysclasspath diatur. Biasanya yang terbaik adalah mengatur ini menjadi false sehingga perilaku skrip tidak peka terhadap lingkungan tempat skrip dijalankan.
Seperti yang disebutkan oleh @Daniel Kutik,
presetdef
adalah pilihan yang baik. Terutama jika seseorang mengerjakan proyek dengan banyakbuild.xml
file yang tidak dapat, atau lebih suka tidak diedit (misalnya, dari pihak ketiga.)Untuk menggunakan
presetdef
, tambahkan baris ini dibuild.xml
file tingkat atas Anda :Sekarang semua
javac
tugas selanjutnya pada dasarnya akan mewarisiincludeantruntime="false"
. Jika proyek Anda benar-benar membutuhkan pustaka runtime semut, Anda dapat menambahkannya secara eksplisit ke file build ATAU setincludeantruntime="true"
. Yang terakhir juga akan menyingkirkan peringatan.javac
Tugas selanjutnya masih dapat secara eksplisit mengubah ini jika diinginkan, misalnya:Saya akan merekomendasikan untuk tidak menggunakan
ANT_OPTS
. Itu bekerja, tetapi itu mengalahkan tujuan dari peringatan itu. Peringatan itu memberi tahu seseorang bahwa build seseorang mungkin berperilaku berbeda pada sistem lain. MenggunakanANT_OPTS
membuat ini lebih mungkin karena sekarang setiap sistem perlu menggunakanANT_OPTS
dengan cara yang sama. Juga,ANT_OPTS
akan berlaku secara global, menekan peringatan mau tak mau di semua proyek Andasumber
presetdef
trik serupa dibuat agar berfungsi untuk tugas Ant yang bukan bawaan? Saya sudah mencoba iniscalac
, tetapi karenabuild.xml
file yang lebih rendah harus secara manual mendefinisikanscalac
tugas, mereka menimpa apa pun yang saya atur di tingkat atas.Chet Hosey menulis penjelasan yang bagus di sini :
sumber
Jawaban dari Daniel bekerja dengan sempurna. Berikut ini cuplikan sampel yang saya tambahkan ke build.xml saya:
sumber
Jika Anda suka saya bekerja dari commandline, jawaban cepatnya adalah mengeksekusi
Dan kemudian jalankan kembali script semut Anda.
sumber
set ANT_OPTS=-Xms40M -Xmx512M -Dbuild.sysclasspath=ignore
.Gunakan
<property name="build.sysclasspath" value="last"/>
dalam file build.xml AndaUntuk lebih jelasnya cari
includeAntRuntime
di Ant javacNilai-nilai lain yang mungkin dapat ditemukan di sini
sumber
Saya menghadapi hal yang sama, saya check in di program dan fitur. ada pembaruan telah menginstal jdk1.8 yang tidak kompatibel dengan pengaturan lama saya (jdk1.6.0) untuk semut di gerhana. Saya menginstal pembaruan itu. sekarang, proyek semutku sedang membangun kesuksesan.
Cobalah, semoga ini membantu.
sumber