# Java Development Environment With Vagrant - Part 1

### Preface

This post describes my development environment driven by Vagrant (Full description what can be found there is here). You can ask why Vagrant ? To be honest this is my first adventure with this tool. I am suprised how easy can be the process of setting brand new development environment. This tool can really save plenty of hours.

### What is Vagrant (based on documentation)

Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team. Sounds cool, isn’t it? One can configure the whole development environment with all the tools, needed libraries and various dependencies and other can just based on that create his own brand new development environment. The Process of introducing new team members into the project can be shortened by the time of setting new development environment.

### Vagrant Providers

Vagrant has an ability to manage some of machine types like

• VirtualBox
• VMware
• Docker
• Hyper-V

In my setting I am using Virtualbox which is a free cross-platform consumer virtualization product supported by Oracle. To use this provider VirtualBox must be installed on its own. VirtualBox can be installed by downloading a package or installer for your operating system and using standard procedures to install that package.

### Vagrant Installation

Visit the downloads page and get the appropriate installer or package for your platform. Then install it using standard procedures for your operating system. The installer will automatically add vagrant to your system path so that it is available in terminals.

### Setting development environment

To set up java development environment You need just type the following bunch of commands

Now vagrant box image is downloading from the box repository and then installation script provision.sh will be called.

The provision.sh trace can look following

To loggin to the machine do