2013-02-15 8 views
21

Podczas pracy z java/javaee zwykłe ustawienia środowiska programistycznego mają mieć wszystko lokalnie (instalacja jdk, baza danych, serwer aplikacji itp.). Wiem, że wiele osób w świecie ruby ​​/ js używa maszyn wirtualnych do rozwoju (głównie z włóczęgą).Czy vagrant jest przydatny dla programistów java/javaee?

Zastanawiam się, czy istnieje skuteczny sposób skonfigurować podobne env dla java/javaee. Podejrzewam, że mogę łatwo zainstalować serwer baz danych i serwer aplikacji razem z wersją jdk na takiej maszynie wirtualnej, ale co z regularnym rozwojem? Nadal muszę zainstalować lokalnie jdk, prawda? (Potrzebuję mojego IDE do prawidłowej pracy) Potrzebuję maven do zbudowania mojego projektu, więc potrzebuję pełnego lokalnego repo. A następnie muszę wdrożyć moją aplikację na serwerze aplikacji maszyny wirtualnej.

Nie widzę tutaj żadnej realnej przewagi (wciąż posiadam elementy środowiska na obu maszynach). Czy masz z tym jakieś doświadczenie i możesz się ze mną podzielić?

+1

Możesz edytować pytanie w stanie, w którym może ono być zamknięte, prawda?Patrzyłem na Javę na włóczęgę i wiedziałem, do czego zmierzasz, i sam miałem te same pytania. Nadal uważam, że jest to przydatne. – Jay

Odpowiedz

3

Nie jest całkowicie jasne, czego konkretnie szukasz pod względem odpowiedzi.

IMO wartość maszyn wirtualnych nie jest tak wiele dla rozwoju środowiska w , ale Runtime środowisko. Rzeczy takie jak przesyłanie wiadomości/kolejkowanie, serwery, bazy danych, serwery chmurowe (np. Swift) itp.

To jest niezależne od języka. Na przykład mamy maszyny wirtualne (nie oparte na Vagrant), które zawierają Hadoop/HDFS/HBase, Swift, RabbitMQ i różne pojemniki.

Możemy zainstalować na tych komputerach , ale narzędzia deweloperskie działają lokalnie. IMO nie ma powodu, aby rozwijać się na maszynie wirtualnej, chociaż nie ma powodu, aby nie mógł, zwłaszcza jeśli czujesz się komfortowo z Vim/Emacs/etc.

Wiem, że istnieje pojemnik Tomcat dla Vagrant, chociaż go nie używałem.

21

Vagrant jest w zasadzie narzędziem do konfiguracji wirtualnej maszyny VirtualBox. Daje to możliwość szybkiego dostarczenia maszyny wirtualnej i przekazywania przepisu na inne.

Jest to bardzo przydatne w społeczności Ruby/JS, ponieważ nie mają one etapu kompilacji. Sposób, w jaki go używamy, pozostaje na mojej lokalnej maszynie, a cały czas pracy jest wykonywany na VM. Jeśli dokonam zmiany na moim lokalnym komputerze, uruchomiony program na VM natychmiast podnosi zmianę, a środowisko wykonawcze jest modyfikowane tak, jakby kod był tylko na VM. Dosłownie nie muszę nawet instalować Rubiego/JS na moim komputerze.

W świecie Java/.Net masz etap kompilacji, ponieważ mówisz, że potrzebujesz Java i wszystkie słoiki, które musisz skompilować na swoim komputerze. Zmniejsza to nieco użyteczność konfiguracji.

Z drugiej strony zwykle masz bazy danych, kolejki wiadomości, kontenery itp., Z którymi pracujesz iz zespołem, może to zabrzmieć, aby nakręcić e-mail i powiedzieć zaktualizować twój db do tej wersji i załadować nowy przykładowe dane. W programie Vagrant tylko jedna osoba musi dokonać aktualizacji, a następnie może poprosić o pobranie nowej maszyny wirtualnej i nie musisz samodzielnie wykonywać żadnych czynności związanych z uaktualnieniem.

Nadal jest przydatny w języku kompilowanym, ale jest mniej przydatny niż w języku skryptowym.