Eclipse Çalışma Alanları: Ne için ve neden?


133

Çalışma alanlarını (proje başına, uygulama başına (çok öğeli ya da değil), program dili, hedef başına (web geliştirme, eklentiler, vb.) Kullanmanın farklı yollarını gördüm, okudum ve düşündüm ve hala en iyi yaklaşımın ne olduğundan şüphe ediyorum.

Her neyse, ayrıntılı bir bilgi verebilir, ancak bu konuda uzun bir bilgi veremez mi?

Bu, tabiri caizse, bir çok alt soruyu içeriyor ve sormam gereken tüm spesifik alt soruları bilmiyorum, çünkü tutulmanın (ve çalışma alanlarının) tüm yönlerini bilmediğimden emin değilim, ama Aradığım şeyin bir örneğini vermeye çalışacağım:

  • Ne için?
    • Tutulma gelişimi bunun için ne anlama geliyordu?
    • Diğerleri / çoğu insan ne düşünüyor?
    • Ne düşünüyorsun?
    • ...?
  • Neden?
    • Paylaşım değerlerine karşı yapılandırma çakışmaları var mı?
    • Herhangi bir dosya alanı nedeni var mı?
    • Verim?
    • ...?

Oh, ve ben farklı dilleri ve protokolleri kullanan bir geliştirici için minimum kullanım durumundan bahsediyorum ve bunların hepsini tek bir projede DEĞİLDİR (bazı projeler için php, javascript ve xml, diğerleri için C #, hala java ve SQL diğerleri, vb.)

Edit 2012-11-27: Beni yanlış anlamayın. Çalışma alanlarının kullanımından şüphe duymuyorum, sadece olması gerektiği gibi veya başka biri daha iyi düşünürse kullanmak istiyorum. Peki "ne için?" anlamı: En iyi kullanım nedir? Ve neden?" aslında "ne için?"


14
Hala anlamıyorum. Görünüşe göre , ne için zaten olduğunu bilen insanlar için mantıklı ve bunun herkes için açık olmadığını anlamak zor.
Rafael Eyng

Ben de almıyorum ve aşağıdaki her şeye katılmıyorum * ya da tam değil (referans yok). Neden henüz bir cevap kabul etmedim. * Tabii ki burada bir görüş ya da kişisel uygulama değil. Anladım.
e-motiv

Cevap vermeye çalıştım, çok iyi bir cevap değil ama bunun üzerine inşa edebileceğimi düşünüyorum
Rafael Eyng

Yanıtlar:


43

Size Java dünyasında çok rahatsızlık hisseden birisinin vizyonunu sunacağım, ki bu sizin de sizin durumunuz.

Ne olduğunu

Çalışma alanı, birlikte gruplama kavramıdır:

  1. bir dizi (bir şekilde) ilgili projeler
  2. tüm bu projelerle ilgili bazı yapılandırmalar
  3. Eclipse'in kendisi için bazı ayarlar

Bu, Eclipse'e bu bilgileri söylemeyi başaran dosyaları bir dizin oluşturarak ve içine koyarak (bunu yapmak zorunda değilsiniz, sizin için yapılır) olur. Açıkça yapmanız gereken tek şey bu dosyaların yerleştirileceği klasörü seçmek. Ve bu klasörün kaynak kodunuzu koyduğunuz yerle aynı olması gerekmez - tercihli olarak olmayacaktır.

Yukarıdaki her öğeyi keşfetmek:

  1. bir dizi (bir şekilde) ilgili projeler

Eclipse her zaman belirli bir çalışma alanı ile ilişkili olarak açılmış gibi görünür, yani, A çalışma alanındaysanız ve B çalışma alanına (Dosya> Çalışma Alanlarını Değiştir) geçmeye karar verirseniz , Eclipse kendini kapatacak ve yeniden açacaktır. A çalışma alanı ile ilişkili (ve Proje Gezgini'nde görünen) tüm projeler artık görünmeyecek ve B çalışma alanı ile ilişkili projeler artık görünecektir. Eclipse'de açık olacak bir projenin bir çalışma alanıyla ilişkilendirilmesi GEREKİR gibi görünüyor .

Bunun, proje kaynak kodunun çalışma alanı içinde olması gerektiği anlamına gelmediğine dikkat edin. Çalışma alanı, bir şekilde, diskinizdeki projelerinizin fiziksel yoluyla bir ilişkisi olacaktır (herkes nasıl bilir? Çalışma alanının içine, başarı olmadan proje yollarına işaret eden bir dosya arayarak baktım).

Bu şekilde, bir proje aynı anda 1'den fazla çalışma alanının içinde olabilir. Bu nedenle, çalışma alanınızı ve kaynak kodunuzu ayrı tutmak iyi görünüyor.

  1. tüm bu projelerle ilgili bazı yapılandırmalar

Java derleyici sürümü gibi bir şey duydum (örneğin 1.7, örneğin - 'sürüm'ün burada sözcük olup olmadığını bilmiyorum), çalışma alanı düzeyinde bir yapılandırmadır. Çalışma alanınızda birkaç projeniz varsa ve bunları Eclipse içinde derlerseniz, hepsi aynı Java derleyicisiyle derlenecektir.

  1. Eclipse'in kendisi için bazı ayarlar

Anahtar bağlarınız gibi bazı şeyler de çalışma alanı düzeyinde saklanır. Dolayısıyla, ctrl + sekmesinin sekmeleri akıllı bir şekilde değiştireceğini (istiflemeden değil) tanımlarsanız, bu yalnızca geçerli çalışma alanınıza bağlanır. Aynı anahtar bağlamayı başka bir çalışma alanında kullanmak istiyorsanız (ve istediğinizi düşünüyorum!), Çalışma alanları arasında bunları dışa aktarmanız / içe aktarmanız gerekiyor gibi görünüyor (eğer doğruysa, bu IDE gerçekten garip bir bina üzerine inşa edilmiştir). İşte bu konuda bir bağlantı .

Ayrıca çalışma alanlarının farklı Eclipse sürümleri arasında uyumlu olması gerekmez. Bu makalede , Eclipse sürümünün adını içeren çalışma alanlarınızı adlandırmanız önerilir.

Ve daha da önemlisi, çalışma alanınız olarak bir klasör seçtikten sonra içindeki herhangi bir dosyaya dokunmayın veya sorun yaşarsınız.

Nasıl kullanmanın iyi bir yol olduğunu düşünüyorum

(aslında, bunu yazarken, bunu iyi bir şekilde nasıl kullanacağımı bilmiyorum, bu yüzden bir cevap arıyordum - burada toplanmaya çalışıyorum)

  1. Projeleriniz için bir klasör oluşturun:
    /projects

  2. Her proje için bir klasör oluşturun ve projelerin alt projelerini içinde gruplandırın:
    /projects/proj1/subproj1_1
    /projects/proj1/subproj1_2
    /projects/proj2/subproj2_1

  3. Çalışma alanlarınız için ayrı bir klasör oluşturun:
    /eclipse-workspaces

  4. Projeleriniz için çalışma alanları oluşturun:
    /eclipse-workspaces/proj1
    /eclipse-workspaces/proj2


1
Son bölümün biraz açıklığa ihtiyacı olduğunu itiraf ediyorum. Bir projenin kendisi değilse, alt proje nedir? Bu alt projeler, tüm üst projeyi kullanmadan farklı çalışma alanlarında kullanılmayı nasıl telafi eder? Cevabı geliştirmek için önce bulmam gerek.
Rafael Eyng

2
Bu cevap tüm soruya katkıda bulunur. Ancak, biraz klasör odaklı ve aynı zamanda bazı referansları ve argümanları kaçırır. Yine de bilgilendirici. Gördün mü, hepsi katkıda bulunduğundan bu cevaplar zorlaşıyor ve bir cevabı asla kabul edemeyeceğimi düşünmeye başlıyorum. Umarım kimse burada bir ucube değildir ve kabul edilen cevap olmadan bırakacağız?
e-motiv

Hey @ RU-Bn. Bu noktada değilim. Keşke Eclipse Çalışma Alanının ne olduğunu açıklayabilseydim, bildiğime emin olabilirdim.
Rafael Eyng

Hey, bu son soruyu özellikle kimseye doğru kastetmedim. Sadece genel olarak. Belki de üstüne yorum olarak yazmalıydım.
e-motiv

@ RU-Bn, kesinlikle, kötü bir şekilde almadım. Belki de kendimi kötü ifade ettim.
Rafael Eyng

37

Bir çalışma alanının asıl amacı, genellikle bir uygulama oluşturan bir dizi ilgili projeyi birlikte gruplandırmaktır. Çalışma alanı çerçevesi eclipse.core.resourceseklentiye gelir ve doğal olarak tasarımla mantıklıdır.

Projelerin doğaları vardır, inşaatçılar belirli projelere bağlıdır ve bir projedeki kaynakları değiştirdikçe, gerçek zamanlı derleme veya aynı çalışma alanındaki projelerdeki diğer sorunları görebilirsiniz. Bu nedenle önerdiğim strateji üzerinde çalıştığınız farklı projeler için farklı çalışma alanlarına sahip olmaktır, ancak tutulma çalışma alanı olmadan proje ve konfigürasyon koleksiyonu kavramı olmayacak ve sonuçta bir IDE aracı olacaktır.

Bu mantıklı değilse Net Beans veya Visual Studio'nun bunu nasıl ele aldığını sorun. Aynı tema. Maven iyi bir örnektir, bir grup ilgili maven projesini bir çalışma alanına bakmak, hataları gerçek zamanlı olarak geliştirmenizi ve görmenizi sağlar. Çalışma alanı değilse başka ne önerirsiniz? Bir RCP uygulaması, ne için kullanıldığına bağlı olarak farklı bir canavar olabilir, ancak gerçek IDE anlamında, bir çalışma alanı veya proje bağlamından daha iyi bir çözüm ne olacağını bilmiyorum. Sadece düşüncelerim. - Duncan


1
Ama cevabın için teşekkürler. Bu mantıklı ve en azından bunun nasıl olması gerektiğini biliyorum. Daha fazla ayrıntı ve muhtemelen ilk cümleniz hakkında bir bağlantı (tutulma) ile beni şımartabilir misiniz?
e-motiv

5
"Bir çalışma alanının amacı genellikle bir uygulama oluşturan bir dizi ilgili projeyi birlikte gruplandırmaktır" diye katılmıyorum. İki uygulama geliştirdiğimi varsayalım, iki çalışma alanım olmalı mı? Ne kadar can sıkıcı! Tüm özel perspektifler, tuş bağlantıları, otomatik metin ve diğer tercihler çalışma alanına bağlıdır. Yeni bir uygulamaya her başladığımda onları yeniden oluşturmak zorunda kalacağım! Bence iki çalışma alanınız olmalı: dev ve en son sürüm. Çalışma alanı içinde, her uygulama için bir ÇALIŞMA SETİ oluşturursunuz. Çalışma alanları ve çalışma setleri bu şekilde kullanılır.
John Henckel

2
John, Örneğin, çalışma alanınızdaki iki uygulama RCP uygulamalarıysa ve her biri farklı bir hedef platform veya farklı bir java derleyici uyumluluk düzeyi gerektiriyorsa, Uygulamalarınız iki uygulamayı koyarak aynı çalışma zamanı yapılandırmasını gerektirmedikçe ne yaparsınız? bir çalışma alanı sorunlara neden olur. Kullanmak istediğiniz ortak bir tercihler kümesine sahip olduğunuzu anlıyorum, bu nedenle yeni çalışma alanları ayarlayabilmeniz ve kuruluşlarınızı veya kişisel tercihlerinizi ve diğer ayarları içe aktarabilmeniz için bir tercih verme / alma özelliği var.
Duncan Krebs

1
İlginç nokta @JohnHenckel! Çalışma setlerinde sıkıntılarım olmasına rağmen. Görünüşe göre sadece tutulmanın bazı özellikleriyle çalışıyorlar, sanırım hepsini elle ayarlayabilirsiniz (dün, tüm projelerden tüm görevleri veren görevler görünümünde yaptığım gibi). Bunu kütüphane işlevleri, otomatik tamamlama, mevcut yöntemler vb. İçin de yapabilir misiniz? Çalışma setlerini nasıl kullandığınızla da ilgileniyorum. @DuncanKrebs, tercihlerin içe / dışa aktarma özelliğini bilmiyordum. Teşekkürler! Bu, çalışma alanlarının nasıl kullanılacağı ile ilgili çok şey çözer. İkinizide tesekkurler. Ve tartışmalara / kavrayışlara atmak için durmayın!
e-motiv

1
Tutulmaya yeni taşındım. Daha önce "klasör" adı verilen bu yeni işletim sistemi kavramını kullanıyordum. Bir klasör benim dosya sistemimde bir proje yerleştirdiğim bir yer. Oradan alt klasörler olabilir. Tek bir üst klasörün içine ilgili projelerin birden fazla klasörünü bile yerleştirebilirsiniz. Peki, Eclipse olmadan ne yapardım? Bir klasör, temel bir metin düzenleyici kullanır, derler ve komut satırından çalıştırırdım. Yani, cevabınız hepimizin "çalışma alanlarının" ne kadar yararlı olduğunu bilmemiz gerektiğini düşünüyor gibi görünüyor, ama belki de "klasör" ile tanışmalısınız.
Gabriel Staples

3

Temel olarak çalışma alanlarının kapsamı iki noktaya bölünmüştür.

İlk nokta (ve birincil) kendi kendini tutmasıdır ve ayarlar ve meta veri yapılandırmalarıyla (plugin ctr) ilişkilidir. Her proje oluşturduğunuzda, eclipse tüm yapılandırmaları toplar ve bunları bu çalışma alanında depolar ve bir şekilde aynı çalışma alanında çelişkili bir proje varsa, bazı işlevselliği hatta kendi kendini tutmanın stabilitesini kaybedebilirsiniz.

İkincisi (ikincil) kalkınma stratejisinin benimseyebileceği nokta. Birincil kapsam karşılandığında (ve uzmanlaştıktan sonra) ve proje ilişkileri (kütüphaneler, perspektifler ctr gibi) ile ilgili daha fazla ayarlamaya ihtiyaç duyulduktan sonra, geliştirme alışkanlıklarına veya olası dil / çerçeveler "davranışlarına" dayalı olarak ayrı çalışma alanları başlatılabilir. Örnekler için DLTK, ayrı bir kafes içinde bulunması gereken bir canavardır. Forumlarda çok sayıda şikayet çalışmayı durdurdu (düzgün ya da hiç) ve önerilen çözüm, eşdeğer eklentinin ayarlarını geçerli çalışma alanından temizlemekti.

Şahsen, eklentilerin mevcut durumu ile birlikte gelen bilinen sorunlarla ilgili ayrı çalışma alanları söz konusu olduğunda kendimi dil ayrımına daha yalın buldum. Tercihen onları minimum sayıda tutuyorum çünkü bu, projeler haline geldiğinde daha az hayal kırıklığına yol açıyor ... bol ve sürüm kontrolü, projelerinizi sakladığınız tek sürüm değil. Son olarak, ilgisiz projelerin sunumu nedeniyle çok sayıda (gereksiz) eklenti yüklenirse yükleme hızı ve performans ortaya çıkabilir. Sonuç olarak; her biri için tek bir çözüm yok, sorunu çözen ana mavi baskı yok. Bu deneyim ile büyüyen bir şey, Daha az olsa!


DTLK ile ne demek istiyorsun?

Metin düzenleyiciyi bir IDE lehine terk ettiğinizde, ilk sürücü, sözdizimi hatalarının en azından söylenmesini önlemek için otomatik tamamlamanın ve kitaplıklarınızın (ve dokümanlarınızın) görünümüdür. Hiçbir durumda bu işlevselliği tehlikeye atmazsınız.
Lazaros Kosmidis

1

Eclipse'i yıllarca kullanmama rağmen, bu "cevap" sadece varsayım (bu gece deneyeceğim). Varoluştan aşağı oy alırsa, o zaman açıkça yanılıyorum.

Oracle, MySQL Connector C kaynak kodları için bir Visual Studio "Çözümü" oluşturmak için CMake'e güveniyor. Çözüm içinde, bireysel veya toplu olarak (Çözüm tarafından) derlenebilen "Projeler" yer almaktadır. Her Projenin kendi çözümü vardır ve Çözümün kısmını diğer Projelerden farklı ayarlarla derler.

Benzer şekilde, bir Eclipse Çalışma Alanının ilgili makefile Projelerimi (Eclipse) tutabilmesini umuyorum. (Klasör yapım @Rafael açıkladığı gibi olacaktır).

Bu yüzden, Çalışma Alanlarını kullanmanın iyi bir yolunun Visual Studio'nun farklı Projeleri bir Çözümle birleştirme yeteneğini taklit etmesini umuyorum .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.