Presentation materials needed to convince customers to use Maven

My client needs a more organized inventory of all third-party libraries (such as JAR files) that are used in production for their projects. I participate in a number of my Java projects. In the past, their inventory was not maintained consistently, and it was time to take into account all the libraries that are currently in use (there are a lot of them!) And provide a structured process for introducing new libraries into the build environment.

I tried to convey the idea of ​​using Maven and Artifactory in the process of building them, to use the capabilities of these tools to manage the binary library repository and handle the transitive library dependencies. The client does not agree with this proposal because he believes that he will create a job for them to support the Artifactory server and learn the basics of Maven.

Currently, their Java projects are built using Ant scripts. Transit dependencies are mainly driven by trial errors. The registry of libraries currently in use is maintained manually, and the binaries are stored in the Subversion repository. The client acknowledges that this needs to be improved, but currently suggestions for improvement include more one-time "manage them manually."

I want to convince the client that the combination of Maven and Artifactory is a viable turnkey solution for their Java library management needs. Can someone direct me to the literature / materials that I can use to create a presentation for my client about the possibilities and strengths of Maven and Artifactory?

Any other arguments / suggestions / etc will also be appreciated that will help me with this.

+6
repository maven-2 dependency-management artifactory ivy
source share
1 answer

I want to convince the client that the combination of Maven and Artifactory is a viable turnkey solution for their Java library management needs.

As stated in the comment, your client does not have to use Maven completely to use dependency management, you can adapt existing ant scripts to use the Maven ant task or Ivy. It can be less scary and already eliminate some pain.

Regarding how Maven handles dependencies, I will simply explain that:

  • The artifact is identified by coordinates (groupId, artifactId, version).
  • This allows you to store them in the repository using a standardized directory structure (repository)
  • A dependency is bigger than a JAR: it is a POM JAR that resolves things like transient dependencies.

And the benefits of such a dependency management solution:

  • There is no mess with dependencies, they are uniquely identified (no more than “what version is this?” Syndrome)
  • no more binary data in VCS (faster verification, less space)
  • easier reuse of artifacts between projects (no more cans sent by email)
  • simplified management with transitional resolution of dependencies

And since you do not want to rely on public repositories because you need to store your artifacts, you need an enterprise repository. My personal choice is Nexus:

  • because it is file based (unlike Artifactory, and I don't want to put my artifacts in the database)
  • because it is easy to install / use
  • because it’s easy to administer

Here are some resources about Nexus (sorry, I just don't use Artifactory):

And just in case, here are some presentation materials about Maven:

+8
source share

All Articles