SORU
12 Temmuz 2013, Cuma


Bir Java projesi için serseri: ana VM veya derlemek gerekir?

İşte soru: bir Java projesi (ya da bu konuda herhangi bir derlenmiş dil projesi) Serseri kullanırken, ana bilgisayarda VM veya derlemek gerekir? Ayrıca, IDE ve tüm geliştirme araçları, ev sahibi olarak, ya da VM içinden çalıştırın olmak ister?

Bir Java IDE ve/derleme dağıtma işlemi Serseri bir VM ile tam olarak çalışır not very well defined gibi görünüyor. Genel olarak benim izlenimim kodu ana bilgisayarda düzenlenmiş olan ve olmayan derlenen diller için harika çalışan VM üzerinde çalışır. Other answers on Stackoverflow Serseri ekstra derleme adım yüzünden derlenen diller için daha az yararlıdır, ama yine de neler yapılabileceğini görmek istediğini ima etti.

Zaten: üzerine düşündüm bazı şeyleri

Neden VM derleme

  • eğer ana bilgisayarda derleme, java yazılım bir parça daha kurmaktır
  • eğer ana bilgisayarda derleme, ana bilgisayarda java sürümünü el ile VM ile güncel tutulmalıdır
  • ana bilgisayarda karşılık gelen java sürümü kullanılamaz (ki, bir Mac üzerinde) olabilir

Neden VM IDE var

  • çevre arasındaki sıkı bütünleşme ve IDE, kısayollar, uygulamayı çalıştırmak için kullanabilirsiniz
  • olabilir uzaktan hata ayıklayıcı hata ayıklama olmadan java uygulamaları için bağlantı (tek adım/hata ayıklama çalıştırmak)

Neden ana derleme

  • daha hızlı kez derleyin
  • VM mümkün olduğunca üretim gibi görünüyor ne kadar yakın tutmak istiyorum

Neden ana bilgisayardaki IDE var

  • ana bilgisayarda kod düzenleme ve VM çalıştırmak için berduş Kongre
  • daha iyi performans (X iletme ve VNC yavaş) UI

Düşünceleriniz neler: VM veya ana içeriden benim IDE koşayım? VM veya ana içinden derlemek gerekir?

CEVAP
26 Temmuz 2013, Cuma


Çok düşündüm ve deneyden sonra, Serseri nerede kullanılacağını ve Java geliştirme iş akışı ile entegre nasıl karar verdim.

JavaEE / dağıtılmış uygulamaları için bir web sunucusu ve veritabanı sunucusu yapılandırma kesinlikle "" Serseri. kullanımı gerektirecek karmaşıklığı yeterli şeyler vardır İki sunucu ve onları yapılandırmak için sayısız yollar, yapılandırma başka bir geliştirici dışarı senk, "benim makinem" sendromu. çalışmalar hakkında getirmek için kolay Bu tür bir yazılım için, en iyi ve ana bilgisayardaki kod düzenleme derleme ve üretim ortamı taklit eden Serseri bir VM dağıtmak için çalışacak. Web sunucusu için bir dağıtım klasörü ana hedef, el ile yeniden başlatma ihtiyacı çıkarma derlemek için bir symlinked bile olabilir. Bu kadar Serseri olabilir önemli bir kısmı geliştirme yaşam döngüsü, ama döngüsü zaman kodu/derleme/dağıtmak host üzerinde çalışan ve Java VM ile olurdu daha uzun çevrim süresi için kod üzerinde host üzerinde çalışan ve VM görülüyor ki, PHP/Ruby/Düğüm/etc.

Tek başına Java uygulamaları (kütüphaneler ya da masaüstü uygulamaları gibi) hikaye biraz değişiyor. Bu durumda en mantıklı düzenleme, derleme ve ana makine üzerinde çalıştırmak için, tamamen Serseri kullanımı sakınarak yapar. Eğer büyük bir Java IDE (Eclipse, Eclipse, Kişisel...) birini kullanıyorsanız, zaten makinede Java yüklü olması. Bu noktada Serseri kullanarak yükü kıyasla çok az avantajı vardır, ve sadece geliştirme sürecinde karmaşıklığı fazladan bir katman koymak için hizmet vermektedir. Bu ana bilgisayarda her şeyi çalıştırmak mümkün bir IDE ile Java düzenlemek mümkün zaten ne zaman çünkü. Tek sorun Java sürümü proje için gerekli sürümü ana bilgisayardaki IDE çalışan uymayabilir. Genel (umarım) bu çok fazla bir sorun değil; bu yazı JDK6 gibi sonu lifed ve JDK8 henüz piyasaya (bu bizi nereye götürür sanırım). Ama eğer birden çok sürümünü çalıştırmak için ihtiyacınız varsa, gerektiğinde ana JAVA_HOME ayarlamak gerekir. Bu ekstra karmaşıklığı tanıtmama gerek yok ama, sadece projeler Java farklı sürümleri kullanırken, Serseri bir çalışma zamanı koruyarak daha az karmaşıklık.

İlginç soru containerless web uygulamaları ile ne alakası var. Web sunucu (bu durumda uygulama için dahili) harici bir web sunucusu için yaptığımız gibi VM içinde çalıştırılması gerekir? Veya tek başına uygulama için ana bilgisayarda çalıştırmak? Containerless web uygulamaları için endişelenecek bir dış web sunucusu yok, ama yine de büyük olasılıkla bir veritabanı var. Bu durumda melez bir yaklaşım gösterebiliriz. Containerless bir web uygulaması çalıştıran ve ana makinede kodunuzu derlemek etkili olur aslında bağımsız bir uygulama çalıştıran aynıdır. Ama veritabanı ile ilgili mantıklı veritabanı sunucusu kendi Serseri onun VM üzerinde olması için hala yeterince karmaşık ve yapılandırma var.

Umarım bu Serseri ilgilenen Java geliştiricileri nasıl kullanılacağı hakkında bazı bağlam sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010