A dynamic, autoconfigured and quick build pipeline with POM Explorer

Have all your projects always up-to-date

Arnaud Tournier, le 02-10-2015

In my job, i often work with lot of different projects. Lots of times they are maven projects. And lot of times they are very much interconnected. The correct way to have always up-to-date artifacts is to get help from a build pipeline. One very common tool for that end is Jenkins or CruiseControl.

But the job configuration is tedious and even if it’s kind of ok for the central company build pipeline to be monolithic, having a Jenkins running on my development machine watching for changes and trigerring build only for the projects and dependencies i am currently focusing on is something kind of hard to get. This is even more the case if the projects structure changes often.

So having no tool to help me, i made pom-explorer which i use now every time i need to do a task at the projects level. This task can be releasing artifacts, opening new versions, updating the artifact graph, exporting a graphml file, searching for unused dependencies and querying for discrepancies and so on. Even visualizing the artifact graph in 3d is possible !

Here i am going to write about the build pipeline tool included in pom-explorer.

Let’s say i have a few projects in a directory C:\Documents\Repos\. There is a library hexa.tools, and there is few projects like accounting and pom-explorer depending on modules contained in hexa.tools.

Now what i want is that while i work on accounting and the included modules from hexa.tools, when i make some changes in the source code, the artifacts are always build so that they are up-to-date with the code. But i don’t need to build the pom-explorer project, just the accounting project and its dependencies.

So that is a very simple task for pom-explorer !

First build and run it (refer to this page for detailed instructions.

Then enter the command to analyse the projects directory. Here :

analyse directory c:\documents\repos

The software will list and process all the maven projects contained in the specified directory.

Next, we want to say to pom-explorer that we want the accounting project and all the projects on which it depends to always be up-to-date. This is done with the command :

build maintain fr.lteconsulting:accounting:1.0-SNAPSHOT

The tool will list all the directories it needs to watch changes for. It does not check directories names target and it also tries to take .gitignore files into account…

When you make a change on any project on which the accounting project depends on (directly or not), the build pipeline will automatically be triggered.

When a change you make breaks a build, pom-explorer gives you a log. When you fix the problem, a new build will automatically take place and the pipeline will continue to execute, cool.

There is nothing to configure because all the informations are in your projects files (the pom.xml files). Isn’t that cool ?

help command

Pom Explorer is made with love by LTE Consulting

Arnaud Tournier, le 02-10-2015