Hy everyone, My architecture consists of: Spring applications, git repository (gitlab), maven, maven repository (nexus), continuos integration (jenkins), docker with docker swarm.
Here is how the gitlab repository is currently organized.
Currently when I make changes to my code in Spring I do a “mvn deploy” to push on remote maven repository (nexus).
Once done, I push the updated code to git repository (gitlab).
The push starts directly the integration pipeline (jenkins) which performs a push of the docker image on the docker registry and warns docker swarm to turn on the new containers with the new image.
The new image will download the desired application from Nexus and will make it start.
(I want to say that every application of mine imports modules from my other applications, such as an my audit service).
Question: For the technologies in use, am I making the most of them? Why do I have doubts about the “mvn deploy”, can’t I use “mvn install” directly in the container and start the application rather than downloading from the nexus?