23

Java/javaee を使用する場合、通常の開発環境のセットアップでは、すべてをローカルに配置します (jdk インストール、データベース、アプリケーション サーバーなど)。ruby/js の世界では、多くの人が開発に仮想マシンを使用していることを知っています (主に vagrant を使用)。

java/javaee に同様の env を設定する効率的な方法はあるのでしょうか。このような仮想マシンに、データベース サーバーとアプリケーション サーバーを jdk 版と一緒に簡単にインストールできると思いますが、通常の開発はどうでしょうか。jdk をローカルにインストールする必要がありますよね?(IDE が適切に動作する必要があります) プロジェクトをビルドするには Maven が必要なので、完全な Maven ローカル リポジトリが必要です。次に、仮想マシンのアプリ サーバーにアプリをデプロイする必要があります。

ここには本当の利点は見られません (まだ両方のマシンに環境の断片があります)。あなたはそれについて何か経験があり、私と共有できますか?

4

2 に答える 2

22

Vagrant は、基本的に VirtualBox 仮想マシンをセットアップするためのツールです。これにより、VM を迅速にプロビジョニングする機能と、プロビジョニング レシピを他のユーザーに渡す機能が提供されます。

Ruby/JS コミュニティではコンパイルのステップがないため、これは非常に便利です。私たちがそれを使用する方法は、コードがローカル マシンにとどまり、すべてのランタイムが VM 上で実行されることです。ローカル コンピューターで変更を加えると、VM で実行中のプログラムが即座に変更を取得し、コードが VM 上にのみ存在するかのようにランタイムが変更されます。文字通り、コンピューターに Ruby/JS をインストールする必要さえありません。

Java/.Net の世界では、コンパイル手順があるため、Java と、マシン上でコンパイルする必要があるすべての jar が必要であると言います。これにより、セットアップの有用性がいくらか低下します。

一方、通常、作業しているデータベース、メッセージ キュー、コンテナーなどがあります。チームで電子メールを送信し、データベースをこのバージョンに更新して新しいサンプル データをロードすると言うのは面倒な場合があります。Vagrant では、更新を行う必要があるのは 1 人だけで、新しい VM を取得するように指示されるため、自分でアップグレード手順を実行する必要はありません。

したがって、コンパイルされた言語では依然として有用ですが、スクリプト言語ほど有用ではありません。

于 2013-02-15T23:22:22.830 に答える
2

答えの観点から、具体的に何を探しているのかは完全には明らかではありません。

IMOの仮想マシンの価値は、開発環境ではなく、ランタイム環境にとって重要です。メッセージング/キューイング、サーバー、データベース、クラウドサーバー(Swiftなど)など。

これは言語に依存しません。たとえば、Hadoop / HDFS / HBase、Swift、RabbitMQ、およびさまざまなコンテナーを含む仮想マシン(Vagrantベースではない)があります。

これらのマシンにデプロイすることもできますが、開発ツールはローカルで実行されます。IMOは、仮想マシンで開発する理由はほとんどありませんが、特にVim / Emacsなどに慣れている場合は、開発できなかった理由はありません。

使用したことはありませんが、Vagrant用のTomcatコンテナがあることは知っています。

于 2013-02-15T22:57:57.053 に答える