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!
While there are multiple things worth mentioning (e.g. WebSocket Support; check out this blog post by Nikki) in today’s post I’d like to shed some light on a small, but very important aspect:
The SAP HANA Cloud Platform SDK and API are now also available as Maven artifacts in the central Maven repository.
FTW!
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….)
The Central Repository Search Engine
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…
PS
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!
I can only imagine how bravely you and the team fought to make this happen. Awesome!
Pretty neat!
Actually, this is a feature I didn't really miss personally, but from a wider perspective is highly anticipated! I can imagine for every HANA Cloud development team, including yours at SAP, this is a much welcomed convenience
Now if you'll excuse me, I have some HANA Cloud projects to update..... 😉
Awesome! This has been #1 on my wishlist the whole year! I just updated the Paul the Octopus project. What a difference! Consumable out of the box 🙂
Totally awesome news, thanks for sharing Matthias!
Great news
Is it possible to combine it together with the cloud maven plugin? SAP/cloud-maven-plugin · GitHub
I've been using it to deploy both to my local test server and the cloud-server, and it's been working great.
There are two new postings about the subject. You may like to check out Building Java Web Applications with Maven and Working with the "Neo" Maven Plugin.
The first explains how to work with the SAP HANA Cloud Platform API for Java and the second introduces the official Maven plugin for the SAP HANA Cloud Platform.
API, SDK, and Maven plugin are continuously released by SAP to Maven Central. The help for the plugin can be found here: SAP HANA Cloud Platform Java Web Maven Plugin.
Hello,
There hasn't been an update of com.sap.cloud in Maven Central since Dec 04, 2014. Two releases are missing already (1.68, 1.69). Was this service discontinued? That would hurt our build process.
Regards,
Christian.
Hi Christian,
there was a delay with the upload of the 1.68 SDK. The upload was done Jan.12th.
The 1.69 SDK was uploaded Jan.14th. and both SDKs are available in the Maven Central repository:
Index of /maven2/com/sap/cloud/neo-java-web-sdk/1.68.22.2/
Index of /maven2/com/sap/cloud/neo-java-web-sdk/1.69.20.5/
There seems to be a delay in the search index update of Maven Central as none of these version are displayed in the
The Central Repository Search Engine
Regards, Eckart
Thank you, Eckart. I just saw that it is available now.