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
pom-explorer depending on modules contained in
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
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 ?
Pom Explorer is made with love by LTE Consulting