Kami baru-baru ini memiliki masalah dengan proyek Eclipse untuk salah satu anggota tim kami. Tomcat tidak menggunakan JAR aplikasi.
Kami akhirnya melihat .classpath
file Eclipse tidak sama dengan anggota tim di mana proyek itu OK. Kami mengganti .classpath
file dengan satu dari proyek yang OK dan penyebaran Tomcat selesai.
Hanya ingin tahu dan untuk mengetahui apa yang harus dicari di masa depan jika ada sesuatu yang salah, apa yang ada di dalam .classpath
dan .project
file. Apa yang bisa saya tambahkan di sana, apa artinya semua itu?
java
eclipse
configuration-files
eclipse-wtp
gerhana total
sumber
sumber
Jawaban:
Eclipse adalah lingkungan runtime untuk plugin. Hampir semua yang Anda lihat di Eclipse adalah hasil dari plugin yang dipasang di Eclipse, bukan Eclipse itu sendiri.
The
.project
file dikelola oleh platform inti Eclipse, dan tujuannya adalah untuk menggambarkan proyek dari generik, plugin-independen Eclipse pandangan. Apa nama proyeknya? apa proyek lain di ruang kerja yang dimaksud? Apa pembangun yang digunakan untuk membangun proyek? (ingat, konsep "build" tidak berkaitan secara khusus dengan proyek Java, tetapi juga dengan jenis proyek lainnya)The
.classpath
file dikelola oleh fitur Eclipse JDT ( fitur = set plugin). JDT menyimpan banyak file "meta" dalam proyek (lihat.settings
direktori di dalam proyek); yang.classpath
berkas hanyalah salah satu dari mereka. Secara khusus,.classpath
file tersebut berisi informasi yang diperlukan fitur JDT untuk mengkompilasi proyek dengan benar: folder sumber proyek (yaitu, apa yang dikompilasi); folder keluaran (di mana untuk mengkompilasi ke ); dan entri classpath (seperti proyek lain di ruang kerja, file JAR sewenang-wenang pada sistem file, dan sebagainya).Menyalin file seperti itu dari satu mesin ke mesin lainnya secara tidak sengaja mungkin berisiko. Sebagai contoh, jika file JAR sewenang-wenang ditempatkan di classpath (yaitu, file JAR yang terletak di luar ruang kerja dan dirujuk oleh penamaan jalur absolut),
.classpath
file tersebut dibuat non-portabel dan harus dimodifikasi agar menjadi portabel. Ada beberapa praktik terbaik yang dapat diikuti untuk menjamin.classpath
portabilitas file.sumber
git
danMaven
, artinya saya punya (untuk kesederhanaan) folder "root" dari repositori (proyek) dengan satusrc
folder (memegang file "hello world" sederhana.java
) dan proyekpox.xml
file - jadi, Jika saya mengerti Anda secara benar, tidak ada kebutuhan (atau mungkin bahkan tentu tidak perlu) untuk menjaga:.project
,.classpath
dan.settings/
file / folder serta dalamgit
repositori (yaitu-menambahkannya ke.gitignore
file untuk contoh)?m2eclipse
yang Anda lakukan (atau, setidaknya, itulah yang seharusnya dilakukan)..project
tidak harus berada dalam.gitignore
. Mengenai.classpath
- jika Anda menggunakanm2eclipse
dan ruang kerja Anda dikonfigurasi untuk memperbarui proyek Maven pada startup, maka Anda harus OK.classpath
untuk menambahkan.gitignore
tetapi saya belum mengujinya sendiri..project
dan.classpath
dari mereka semua dan ditambahkan ke.gitignore
. Semua berfungsi dengan baik dan saya tidak perlu terlalu sering memperbarui file-file ini di Git..project
Ketika sebuah proyek dibuat di ruang kerja, file deskripsi proyek secara otomatis dihasilkan yang menggambarkan proyek. Satu-satunya tujuan dari file ini adalah untuk membuat proyek menggambarkan sendiri, sehingga proyek yang di-zip atau dilepaskan ke server dapat dibuat kembali dengan benar di ruang kerja lain.
.classpath
Classpath menentukan file sumber Java dan file sumber daya dalam suatu proyek yang dipertimbangkan oleh Java builder dan menentukan cara menemukan tipe di luar proyek. Java builder mengkompilasi file sumber Java ke folder output dan juga menyalin sumber daya ke dalamnya.
sumber
Referensi lengkap tidak tersedia untuk file yang disebutkan, karena dapat diperluas oleh berbagai plug-in.
Pada dasarnya, file proyek menyimpan pengaturan proyek, seperti pembangun dan pengaturan sifat proyek, sedangkan file .classpath menentukan classpath untuk digunakan selama menjalankan. File classpath berisi entri src dan target yang sesuai dengan folder dalam proyek; entri con digunakan untuk menggambarkan beberapa jenis entri "virtual", seperti lib JVM atau dalam kasus dependensi plug-in gerhana (dependensi proyek Java normal ditampilkan secara berbeda, menggunakan entri src khusus).
sumber
Dokumentasi gerhana ini memiliki rincian tentang markup dalam
.project
file: File deskripsi proyekIni menggambarkan
.project
file sebagai:sumber