2010-08-04 23 views
6

Şu anda MyEclipse'i yerleşik Maven4MyEclipse entegrasyonu ve yerleşik J2EE sunucu desteğiyle kullanıyoruz, ancak 64 bitlik kurulum pencerelerini kullanabilmek için normal tutuluma (özellikle Helios) geçiş yapmak istiyoruz. (MyEclipse henüz Windows'da 64-bit'i desteklemiyor.)Çok modüllü bir m2eclipse/WTP projesi, WEB-INF/sınıflarına dağıtılan yardımcı modülleri alabilir mi?

Şu ana kadar, büyük web uygulamamızı tomcat'e uygulayan WTP eklentisiyle m2eclipse kullanarak Helios eclipse'in çalışan bir prototipine sahibim. Dağıtım biraz işlemci yoğun, ancak çalışır ve uygulama başlar.

Burada kritik olarak farklı olan, bağımlı projelerin nasıl dağıtıldığıdır. MyEclipse ortamımızda, tüm bağımlı projeler WEB-INF/sınıflar klasörüne dağıtıldı ve sunucu çalışırken, IDE'deki bir java sınıfında yapılan bir değişiklik yalnızca etkilenen dosyaları/dosyaları kopyalayacaktı. sunucunun WEB-INF/sınıfları ve JVM ve ... boom - sınıfına hot-swap sunucuya canlı değişiklik. Hata ayıklama için harika.

Helyos dönüşümümde, tüm bağımlı projeler JARed alır ve WEB-INF/lib'e yerleştirilir. Bu, gerçek maven yapılı üretim resmimizin neye benzediğine bakmak gibi bir avantajdır, ancak geliştirme ortamı, sıcak-takas kabiliyetinin tamamen yitirilmiş gibi göründüğü için ciddi ölçüde dezavantajlıdır. Burada, bağımlı bir projede bir java sınıfını değiştirirsem, m2eclipse JAR'ı yeniden paketleyecek, dağıtılan web uygulamasının senkronize olmadığını görüp tüm uygulamayı yeniden yayınlayacaktır. Bu, sadece tüm web uygulamasının döngü yapması gerektiğiyle ilgili değil (aynı zamanda bizimki büyüklüğü ve büyük başlatma süresi gibi bir şey bizim açımızdan da iyi bir şey yapmaz), aynı zamanda yeniden yayımlamada tutuklamanın kötü bir gecikmesidir. (Bizim uygulamamız için bu bir veya iki dakika kadar sürüyor.)

Bu yüzden sorum şu: bağımlı projelerin değiştirilmesinde JVM'ye çalışırken değiştirilebilmesi ve dağıtılan dosyaların bu yanlış yayınlama cezası olmadan değiştirilmesi için bir yol var mı? ? Bunun, bu sınıf dosyalarını WEB-INF/sınıflarına dağıtmak anlamına geldiğini, ancak (a) mümkünse veya (b) bu ​​çözümün bir parçası olarak gerçekten gerekli olduğunu bilmediğimi varsayıyorum.

Başkaları bunu çözmek için ne yapıyor? Çözülebilir mi?

Şimdiden teşekkürler!

cevap

5

Sana Re: WTP Tomcat hot deploy with m2eclipse açıklanan çözüm arayan olduğunu düşünüyorum: Eğer etkinleştirirseniz

seçeneğini "Yayıncılık olmadan Modülleri Serve", daha sonra özel kavanoz verir Tomcat sunucuya eklenir Tomcat, web uygulamasının "sınıf yolunu" kontrol etmek için WTP'de desteğini desteklemektedir. Ayrıca, programları, kavanozlara monte edilmemiştir. Bunun yerine, yarar projelerinin Java çıkış klasörü (ler) etkin doğrudan sınıf sunum dosyalarını web uygulamasının "sınıf" dahildir. Bağlam için otomatik yükleme özelliğini devre dışı bırakırsanız ve hata ayıklama modunda çalıştırırsanız, sınıfları için yaptığınız değişiklikler, 'un yeniden kod değiştirilebilmesi için değiştirilemez. Ben Bu aradığınız şeyi başaracağına inanıyorum.

Bunu yapmak için:

  • Git Server görünümü
  • Sunucu Seçenekleri yılında sunucu ayarlarını
  • açmak için senin Tomcat sunucusu çift tıklayın, seçin Yayımlama yapmadan modüler yayınlama aksam
  • Yayıncılıkyılında otomatik seçenekle
+0

HARİKA asla yayınlamayın seçin! Tam olarak aradığım şey bu. (Bütün aramalarım bir şekilde bunu kaçırmıştı, savunmamda, eclipse forumları bu son pazardan çok yakın zamana kadar çevrimdışı görünüyordu, bu yüzden tüm aramalarım o bölgeye ulaşabiliyordu!) Çok detaylı, doğru ve Hızlı cevap. Bu güzel çalıştı! – Scott

+0

@Scott: Rica ederim. Sevindim, yardımcı oldu. –

+0

@Scott: BTW, yardımcı olabileceğini düşünüyorsanız (soldaki oy sayacının altındaki yeşil işaret) bu cevabı kabul etmekte çekinmeyin. –