2013-02-15 27 views
21

使用java/javaee時,通常的開發環境設置是在本地擁有一切(jdk安裝,數據庫,應用服務器等)。我知道ruby/js世界中有很多人使用虛擬機進行開發(主要與流浪者一起)。流浪漢對java/javaee開發者有用嗎?

我不知道是否有一種有效的方法來設置java/javaee類似的env。 我懷疑我可以在這樣的虛擬機上輕鬆安裝數據庫服務器和應用服務器以及jdk版本,但是常規開發呢?我仍然需要在本地安裝jdk,對吧? (我需要我的IDE正常工作)我需要maven來構建我的項目,以便我需要完整的maven本地回購。然後我需要在虛擬機的應用服務器上部署我的應用。

我在這裏看不到真正的優勢(兩臺機器上仍然有環境碎片)。 你有什麼經驗可以與我分享?

+1

您可以將問題編輯爲可以不封閉的狀態嗎?我在流浪漢看Java,知道你在做什麼,並且自己也有同樣的問題。我仍然認爲這很有用。 – Jay 2013-07-11 18:37:58

回答

3

目前還不完全清楚你在尋找答案的具體內容。

IMO虛擬機的價值是不是這麼多的發展環境,但運行環境。諸如消息傳遞/排隊,服務器,數據庫,雲服務器(例如Swift)等等。

這是語言無關的。例如,我們擁有包含Hadoop/HDFS/HBase,Swift,RabbitMQ和各種容器的虛擬機(不是基於Vagrant的)。

我們可能會部署到這些機器,但開發工具在本地運行。國際海事組織將沒有什麼理由在虛擬機上開發,雖然沒有理由你不能,特別是如果你對Vim/Emacs /等感到舒服。

我知道有一個用於Vagrant的Tomcat容器,雖然我沒有使用它。

21

Vagrant基本上是一個設置VirtualBox虛擬機的工具。它爲您提供了快速配置虛擬機的能力以及將配置配方傳遞給其他虛擬機的能力。

這在Ruby/JS社區中非常有用,因爲它們沒有編譯步驟。我們使用它的方式是代碼保留在本地計算機上,所有運行時都在虛擬機上完成。如果我在本地計算機上進行更改,虛擬機上正在運行的程序會立即啓動更改並修改運行時,就像代碼只在虛擬機上一樣。我的字面上甚至不需要在我的電腦上安裝Ruby/JS。

在Java/.Net世界中,你有一個編譯步驟,因爲你說你需要Java和所有需要在你的機器上編譯的jar。這減少了設置的一些有用性。

另一方面,你通常有你正在使用的數據庫,消息隊列,容器等,在一個團隊中拍攝電子郵件並說更新你的數據庫到這個版本並加載新的樣本數據。在Vagrant中,只有一個人需要進行更新,然後他們可以告訴你抓住新的虛擬機,而不必自己執行任何升級步驟。

因此,它在編譯語言中仍然很有用,但與腳本語言相比,它的用處不大。