Everything around a CM's Life & Work

Menu

Pathfinder – DependencyManagement Analyzer

Just few weeks ago AroundTheCode started its first Opensource project: Pathfinder, today I want to introduce its latest feature: Dependency Management Analyzer.

All Maven users know what DependencyManagement is and how it works (otherwise you can find a good reading starting point here ), and they probably also know how boring and hard can be dig through all your projects checking matching dependencies, usually finding out that different section of the same project uses different version of the same library and put all pieces together.

The good news is that now Pathfinder can do (almost) all this for you!
(No, it will not call DevTeam to tell them they have to change their dependencies version, sorry! 😉 )

If you read my first post you should already know that Pathfinder focus is provide users with a full overview of all your projects dependencies at once under the form of a connected graph.

In the new Dependency Management section now you can trigger an analysis of all these projects relations which will result into a tree-grid report of all artifacts, with their version, scope and source artifact requiring them.

Analysis is run on the active graph shown into the interface so you can tune your analysis using the Filtering section on the top of the left menu.

If your project is medium-big sized, you will most likely have some artifact used by more than one module.
If such modules uses (as they should) the same version of the library, all relations will be correctly reported with different sources, but if dependencies differ in versions, then the tree-grid section will be automatically expanded and marked in red to highlight the problem and help you spot it.

Finally, once you are happy with the grid report and you want to stat introducing/checking dependency management into your maven project hierarchy, you can simply click on the Dependency management tab of the dialog to get a full maven-syntax list of all dependencies listed on your report.

You can decide which dependencies have to be included in the report by modifying checkbox on the right side of the report.
By default all dependencies are included once, with their first occurrence in the list in event of duplications, while the XML report will be updated by simply selecting the tab

So all you have to do is to in copy-an-paste the list into your parent-pom.
Ah, I forgot, you still have to pick up the phone and call DevTeam to tell them to remove versions declaration from a thousands poms, but I already warned you we would not do phone calls for you 😉

What’s Next on Pathfinder

Dependencies Management Analisys still needs some adjustments from the UI perspective, so probably some improvement/bugfix will occur in the next days, but since Pathfinder servers still need intensive testing before being ready for a production CI integration, I think a big focus will be put on the capability to run isolated tests on multiple projects without making maven-plugin integration mandatory.

Some graph save/load features are surely needed, and I’m thinking to integrate a sort of repository crawler to perform graph import with PULL approach instead of just current maven-plugin PUSH one.