Maven or Finding joy in the little things
It’s Thursday morning and – as the frequent visitors of this space know by now – this implies that there’s a 50/50 chance of new features being introduced to the SAP HANA Cloud Platform. And today there are… so, let’s quickly have a look at the release notes then to see what’s new!
The SAP HANA Cloud Platform SDK and API are now also available as Maven artifacts in the central Maven repository.
So, you may wonder why I’m so excited about this, hence let me explain. One of the great benefits of using open-source projects is that you can build on the work of others (in contrast to having to re-invent the wheel). Given the broad adoption of popular open-source projects you benefit from quality coding and plenty of good documentation, code samples and the community support. This lowers the entry barrier and results in improved productivity. So far, so good…
Now, that is also true for people developing a particular open-source project. They also don’t want to start from scratch, but rather leverage other open-source projects as well. Not surprisingly, this may result in a complex (= deeply nested) dependency graph. Imagine you would have to resolve all of these dependencies manually and acquire all the required ‘ingredients’ manually. Fortunately, you don’t have to… enter: Maven.
Maven is a dependency and build management tool and it is widely used in the Java community. I usually explain it like that:
The most important file in a Maven-based project is the pom.xml file, which contains the so called “Project Object Model”. In simple terms think of it as a “recipe” listing all the required “ingredients” (referenced Open Source projects) as well as the “cooking instructions” (build process).
As in every day life, there are more than just one store to get ingredients; yet there are super markets that usually provide the most commonly used goods. In our context, this place is Maven Central. And with today’s release you can now finally get all the SAP HANA Cloud Platform artifacts there as well!!!
In the past, one would have to download the SDK from our tools page manually and reference the required HCP artifacts using the so called system scope. Unfortunately, this approach results in an environment specific configuration as people use different operation systems and file locations for the SDK. That somehow contradicted the very nature of Maven of simplifying the dependency and build management.
Well, fortunately this is all history now and going forward we have the convenience of simply referring to the artifacts on Maven Central and let Maven handle the rest. This may just be a little thing, but it ultimately eases the process of getting a project up and running… especially in the context of providing easy-to-use samples/demos on github! (Note2self: yes, we have to update the existing samples there ASAP….)
Oh, and just so that you know… that is just the beginning. The team is dedicated to provide a solid integration with Maven and there are plenty of things to come! Stay tuned…
As someone who has been among those pushing for this move I got pretty excited when I heard about the feature being released and consequently I posted a teaser on Twitter last week. Congrats and thanks to Jan Penninkhof and Leo van Hengel for guessing it correctly!