How to setup a development environment for java in unix for each of the team member
Earlier I worked on Ruby on Rails.
We, all the developers used to pull the latest image from docker.
Once the docker is up and running, we were able to do development locally.
Once the code changes are done, we used to push to our respective git branch and once its merged, we used to deploy to production.
The app was hosted on Heroku.
(As you can see all the developers used to work on their own local copy. Postgress database configuration and dummy data was already set for local)
We want to have similar architecture set up as I discussed in the beginning.
I was looking for solution in google. Many authors and articles suggested to use jenkins and github but none of the articles mentioned a complete dev environment setup process sothat each developer can work independently.
- Each developer must get his/her own local copy and work on it(Java)
- Pre configured database locally
- Dump dummy data
- Deployment process (what is the best hosting service for java app like heroku for rails)
A new joinee comes runs a shell script and the entire development environment is set for him and he can start contributing to the project on the same day itself.
Which database should be used with java considering it is a startup, database’s performance and cost and reliablity with Java?(Mysql or posstgresql or any other)
Which OS should be used again considering it is a startup, database’s performance and cost and reliablity with Java?(Ubuntu or Windows, Current we are on Ubuntu)
What is the best solution(step by step) for setting up entire independent dev environment for each developer while using java,spring,hibernate, quartz technologies?
One Solution collect form web for “How to setup a development environment for java in unix for each of the team member”
I’ll answer what we did in a previous startup I’ve worked at. Worked well for us, maybe there other better alternatives.
- Postgres is a good db.
- We used Centos for production so Fedora locally, so it will be the same linux family. Anyway I don’t see any reason to use Windows for development.
- You can use hibernate to create the db schema and tables from your java pojo entities.
- We had scripts which pre-populate certain tables with desired values. E.g. users table.
- All scripts were integrated to run by executing maven commands.
- We used scripts to create the dev env, with configuration of local apache httpd proxy and many other things. It can be quite complicated.
- We used Artifactory to hold and cache the current and previous maven artifacts, both of our product and our maven dependencies.
- As for Quartz, it shouldn’t be a problem. Notice that there is an integration of Spring with Quartz, use it.
- We used local Gitlab as our repo.
- We used local hosted Jenkins for our CI.