What is the best git solution for java code development? Make my own git server? Developers (Linux, Mac, Windows) are working on their local computers, then they are using my own git server.

Would Jenkins with Maven be a better solution? What is the benefit?

Thank you.


I would like to find the best, lean, and simplest solution for our develop team. Here is some info:

  • Team of about 10 developers.
  • Everybody has their own LOCAL (windows, mac, linux), and their own IDE.
  • Project could be developed in java, php, javascript, css, html. I think this is not important for now.
  • My conception is, that I have 3 servers, 1st for DEV, 2nd for TEST and 3rd for PRODUCTION.
  • Every server has own git environment, as I mentioned above.
  • Process should be from LOCAL -> DEV (check by lead developer), then from DEV -> TEST (check by customer), then from TEST -> PRODUCTION.
  • And this is question if is Jenkins / Maven useful, or only git is sufficient.


  • Could you show some of the research that you've done regarding this question? There is no way to answer this question, specifically because it is posed in superlative terms (ie "best"). If you could describe more of your situation's constraints, that would help too. Oct 15, 2019 at 7:50
  • 1
    @BruceBecker See my update, please. Thanks.
    – genderbee
    Oct 15, 2019 at 8:09
  • very nice, thanks :) Oct 15, 2019 at 8:16
  • Please think about docker support / docker deployments. This migth be a topic very hard to get into but then it runs smoothly. But depends on the techs your devs are using
    – Spears
    Oct 16, 2019 at 6:20

1 Answer 1


The Git Server

It's best practice to setup a Git server for the team to access. This way you have a central server that can be maintained, backed up, and focus on serving the source code.

While you could create your own, there are also several popular commercial options available that often have free private repositories (non-exhaustive list):

The Git server will just be a repository for your code. It will allow for workflows like Pull Requests to better manage the changing code base. However, the Git Server will not build your code or deploy it anywhere.


Jenkins will not actually store your source code. Instead it is a tool used for Continuous-Integration (CI) and Continuous Deployment (CD), a big part of DevOps culture. The basic idea is that the Jenkins server will take the source code put into your Git server, ensure it compiles, automated tests pass, and possibly even deploy to your test environment. Tools like Jenkins work with multiple programming languages.

Maven is a tool is specific to building Java projects. Tools like Jenkins often have options to use Maven to build the project.

Setting up a CI/CD tool like Jenkins would be a great next step after you have a consistent place for everyone to store their code.

Best Solution

Gitlab, Bitbucket Pipelines, Azure DevOps are just three examples of tools that both house Git repositories and can do CI/CD. There are many options available for Git and CI/CD, and you can even combine them if you choose not to select an all-in-one solution. Which tools are best is opinion based, and the best practice is to use a tool that helps manage your Git repositories and a tool for CI/CD.

  • 4
    Gitlab is as well a very good option. In addition it offers integrated CI so no need for Jenkins.
    – papanito
    Oct 15, 2019 at 14:23
  • So I can install gitlab solution on my own server and Jenkins is not needed in this case?
    – genderbee
    Oct 17, 2019 at 6:27
  • 1
    @genderbee Correct. Gitlab, Bitbucket Pipelines, Azure DevOps are just three examples of tools that both house Git repositories and can do CI/CD. There are many options and you can even combine them. Which one is best is opinion based, but the best solution is to use a Git tool along with a tool for CI/CD. Oct 17, 2019 at 11:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.