Saya telah melihat, membaca, dan memikirkan berbagai cara menggunakan ruang kerja (per proyek, per aplikasi (multi-aset atau tidak), per bahasa program, per target (pengembangan web, plugin, ..), dan sebagainya) dan saya Saya masih meragukan apa pendekatan terbaik.
Bisakah bisa memberikan wawasan yang panjang, tapi tidak sepanjang halaman tentang ini?
Ini melibatkan banyak sub-pertanyaan, jadi untuk berbicara, dan saya tidak tahu semua sub-pertanyaan spesifik yang harus saya tanyakan, karena saya tidak yakin saya tidak tahu semua aspek gerhana (dan ruang kerja), tetapi Saya akan mencoba memberikan contoh apa yang saya cari:
- Untuk apa?
- Apa artinya pengembangan gerhana untuk digunakan?
- Apa yang dipikirkan orang lain / kebanyakan orang?
- Bagaimana menurut anda?
- ...?
- Mengapa?
- Apakah ada konflik konfigurasi vs. pembagian manfaat?
- Adakah alasan filespace?
- Performa?
- ...?
Oh, dan saya berbicara tentang penggunaan minimum untuk pengembang yang menggunakan bahasa dan protokol yang berbeda, dan TIDAK harus semuanya dalam satu proyek (Misalnya php, javascript dan xml untuk beberapa proyek, C # untuk yang lain, java dan SQL untuk yang lain orang lain, dll.)
Sunting 2012-11-27: Jangan salah paham. Saya tidak meragukan penggunaan ruang kerja, saya hanya ingin menggunakannya sebagaimana seharusnya atau jika ada yang akan berpikir lebih baik. Jadi, untuk apa? berarti: Apa gunanya yang terbaik? Dan mengapa?" sebenarnya menargetkan pada "untuk apa?", dengan kata lain: katakan padaku alasan untuk jawaban Anda.
Jawaban:
Saya akan memberi Anda visi saya tentang seseorang yang merasa sangat tidak nyaman di dunia Jawa, yang saya anggap juga kasus Anda.
Apa itu
Ruang kerja adalah konsep pengelompokan bersama:
Ini terjadi dengan membuat direktori dan meletakkan di dalamnya (Anda tidak perlu melakukannya, itu dilakukan untuk Anda) file yang berhasil memberi tahu Eclipse informasi ini. Yang harus Anda lakukan secara eksplisit adalah memilih folder tempat file-file ini akan ditempatkan. Dan folder ini tidak harus sama dengan tempat Anda meletakkan kode sumber Anda - lebih tepatnya tidak.
Menjelajahi setiap item di atas:
Eclipse tampaknya selalu dibuka terkait dengan ruang kerja tertentu, yaitu, jika Anda berada di ruang kerja A dan memutuskan untuk beralih ke ruang kerja B (File> Ganti Ruang Kerja), Eclipse akan menutup sendiri dan dibuka kembali. Semua proyek yang dikaitkan dengan ruang kerja A (dan muncul di Project Explorer) tidak akan muncul lagi dan proyek yang terkait dengan ruang kerja B sekarang akan muncul. Jadi sepertinya proyek, agar terbuka di Eclipse, HARUS dikaitkan dengan ruang kerja.
Perhatikan bahwa ini tidak berarti bahwa kode sumber proyek harus di dalam ruang kerja. Ruang kerja akan, entah bagaimana, memiliki hubungan dengan jalur fisik proyek Anda di disk Anda (ada yang tahu bagaimana? Saya telah mencari di dalam ruang kerja mencari beberapa file yang menunjuk ke jalur proyek, tanpa hasil).
Dengan cara ini, sebuah proyek dapat berada di dalam lebih dari 1 ruang kerja sekaligus. Jadi sepertinya bagus untuk memisahkan ruang kerja dan kode sumber Anda.
Saya mendengar bahwa sesuatu, seperti versi kompiler Java (seperti 1.7, mis. - Saya tidak tahu apakah 'versi' adalah kata di sini), adalah konfigurasi tingkat ruang kerja. Jika Anda memiliki beberapa proyek di dalam ruang kerja Anda, dan kompilasi mereka di dalam Eclipse, semuanya akan dikompilasi dengan kompiler Java yang sama.
Beberapa hal seperti binding utama Anda juga disimpan di tingkat ruang kerja. Jadi, jika Anda menentukan bahwa tab ctrl + akan mengganti tab dengan cara yang cerdas (tidak menumpuknya), ini hanya akan terikat pada ruang kerja Anda saat ini. Jika Anda ingin menggunakan pengikatan kunci yang sama di ruang kerja lain (dan saya pikir Anda mau!), Tampaknya Anda harus mengekspor / mengimpornya di antara ruang kerja (jika itu benar, IDE ini dibangun di atas beberapa tempat yang sangat aneh). Berikut ini tautannya .
Tampaknya juga ruang kerja belum tentu kompatibel antara versi Eclipse yang berbeda. Artikel ini menyarankan agar Anda memberi nama ruang kerja Anda yang berisi nama versi Eclipse.
Dan, yang lebih penting, setelah Anda memilih folder untuk menjadi ruang kerja Anda, jangan sentuh file apa pun di dalam sana atau Anda berada dalam masalah.
Bagaimana menurut saya adalah cara yang baik untuk menggunakannya
(sebenarnya, saat saya menulis ini, saya tidak tahu bagaimana menggunakan ini dengan cara yang baik, itu sebabnya saya mencari jawaban - yang saya coba kumpulkan di sini)
Buat folder untuk proyek Anda:
/projects
Buat folder untuk setiap proyek dan kelompokkan sub proyek di dalamnya:
/projects/proj1/subproj1_1
/projects/proj1/subproj1_2
/projects/proj2/subproj2_1
Buat folder terpisah untuk ruang kerja Anda:
/eclipse-workspaces
Buat ruang kerja untuk proyek Anda:
/eclipse-workspaces/proj1
/eclipse-workspaces/proj2
sumber
Inti dari ruang kerja adalah untuk mengelompokkan satu set proyek terkait bersama-sama yang biasanya membuat aplikasi. Kerangka kerja turun ke
eclipse.core.resources
plugin dan secara alami dengan desain masuk akal.Proyek memiliki sifat, pembangun melekat pada proyek tertentu dan ketika Anda mengubah sumber daya dalam satu proyek Anda dapat melihat dalam kompilasi real time atau masalah lain dalam proyek yang berada di ruang kerja yang sama. Jadi strategi yang saya sarankan adalah memiliki ruang kerja yang berbeda untuk proyek yang berbeda yang Anda kerjakan tetapi tanpa ruang kerja dalam gerhana tidak akan ada konsep kumpulan proyek dan konfigurasi dan setelah semua itu adalah alat IDE.
Jika itu tidak masuk akal, tanyakan bagaimana Net Beans atau Visual Studio mengatasi ini? Itu tema yang sama. Maven adalah contoh yang bagus, memeriksa sekelompok proyek pakar terkait ke dalam ruang kerja memungkinkan Anda mengembangkan dan melihat kesalahan secara real time. Jika bukan ruang kerja, apa lagi yang akan Anda sarankan? Aplikasi RCP bisa menjadi binatang yang berbeda tergantung pada apa yang digunakan untuk tetapi dalam arti IDE yang sebenarnya saya tidak tahu apa yang akan menjadi solusi yang lebih baik daripada ruang kerja atau konteks proyek. Hanya pikiran saya saja. - Duncan
sumber
Pada dasarnya ruang kerja dibagi menjadi dua titik.
Titik pertama (dan utama) adalah gerhana itu sendiri dan terkait dengan pengaturan dan konfigurasi metadata (ctr plugin). Setiap kali Anda membuat proyek, gerhana mengumpulkan semua konfigurasi dan menyimpannya di ruang kerja itu dan jika entah bagaimana di ruang kerja yang sama proyek yang bertentangan hadir Anda mungkin kehilangan beberapa fungsi atau bahkan stabilitas gerhana itu sendiri.
Dan kedua (sekunder) poin strategi pengembangan yang bisa diadopsi. Setelah ruang lingkup utama terpenuhi (dan dikuasai) dan ada kebutuhan untuk penyesuaian lebih lanjut mengenai hubungan proyek (seperti perpustakaan, perspektif ctr) kemudian memulai ruang kerja terpisah (s) dapat sesuai berdasarkan kebiasaan pengembangan atau kemungkinan bahasa / kerangka kerja "perilaku". DLTK untuk contoh adalah binatang buas yang harus dimasukkan dalam kandang terpisah. Banyak keluhan di forum karena berhenti bekerja (dengan benar atau tidak sama sekali) dan solusi yang disarankan adalah membersihkan pengaturan plugin yang setara dari ruang kerja saat ini.
Secara pribadi, saya menemukan diri saya lebih condong ke perbedaan bahasa ketika datang ke ruang kerja terpisah yang relevan dengan masalah yang diketahui yang datang dengan keadaan plugin saat ini digunakan. Lebih disukai saya menyimpannya dalam jumlah minimum karena hal ini menyebabkan frustrasi lebih sedikit ketika proyek menjadi ... banyak dan kontrol versi bukan satu-satunya versi Anda menyimpan proyek Anda. Akhirnya, kecepatan dan kinerja pemuatan adalah masalah yang mungkin muncul jika banyak plugin (yang tidak perlu) dimuat karena ada proyek yang tidak relevan. Intinya; tidak ada satu solusi untuk setiap solusi, tidak ada cetak biru utama yang menyelesaikan masalah. Itu adalah sesuatu yang tumbuh dengan pengalaman, Less is more though!
sumber
Meskipun saya telah menggunakan Eclipse selama bertahun-tahun, "jawaban" ini hanya dugaan (yang akan saya coba malam ini). Jika tidak ada suara, maka jelas saya salah.
Oracle mengandalkan CMake untuk menghasilkan "Solusi" Visual Studio untuk kode sumber MySQL Connector C mereka. Di dalam Solusi terdapat "Proyek" yang dapat dikompilasi secara individual atau kolektif (oleh Solusi). Setiap Proyek memiliki makefile sendiri, menyusun bagian Solusi dengan pengaturan yang berbeda dari Proyek lainnya.
Demikian pula, saya berharap Eclipse Workspace dapat mengadakan Proyek makefile terkait saya (Eclipse), dengan Proyek master yang dependensinya mengkompilasi berbagai Proyek makefile unik sebagai pra-requites untuk membangun "Solusi" nya. (Struktur folder saya akan seperti yang dijelaskan @Rafael).
Jadi saya berharap cara yang baik untuk menggunakan Workspaces adalah meniru kemampuan Visual Studio untuk menggabungkan Proyek yang berbeda menjadi Solusi.
sumber