I have a small Java project in a version control system (git), shared by 4 developers. I’m thinking about using Maven in this project as a build tool.
Dependency management is a wanted feature, but I don’t want:
– automatic updates of dependencies (as this could break my software).
– to rely on an Internet connection to download dependencies from a remote repository and be able to compile my code.
Therefore, the questions:
1) May I configure Maven to use local dependencies (eg jars shared in a VCS)? I don’t have several dependencies shared among several projects and my dependencies rarely will be updated, so using Maven repositories is not worth it to me imho.
2) If I choose to use a Maven repository, may I configure one in my local network? I don’t want a remote repository mirror or a portal to the remote repository. I want a standalone repository with my dependencies, located at a server in my local network.
3) If I use the default Maven approach with the remote repository, could I turn off dependency updates after all dependencies are downloaded the first time?
Thanks in advance for any help.
Answer to 1:
Yes you can, google for System-Scope dependencies, BUT: It is not a good idea to do this, because you will remove one of the key-features.
Answer to 2:
Yes you can:
– Artifactory
– Nexus
Answer to 3:
Yes you can. For that case you can use the —offline flag OR better approach: release all dependencies.
Some thoughts:
You want to use a dependecy-management system, without using dependency-management, sounds strange to mee.
If you fear, that changes within your libs may break your code, just don’t use SNAPSHOTs.
Try a kind of version scheme. We use
x.y.z