Skip to main content

Create a package in AEM from Excel file entries

Hello everyone, welcome to this new post where we will discuss a new utility to create an AEM JCR package from the entries present in an excel file.

Problem Statement

Sometimes we are given with the details of content paths in JCR (crx/de) also called filters (the same which we use to create a package in AEM via the package manager). If there are multiple different paths then it becomes tedious to add each content path as a filter one by one.


I have been working on a utility in AEM that will read the content paths in the excel file and will create a package in package manager based on that.

This utility contains an interface which lets you fill the package details like the package name, package group and an upload button to upload the excel file.

Steps to configure

Let's get started with the steps to configure this utility.

Step #1

Clone and build the AEM project from here. You may need to change the uber jar version as per your need in the project's parent pom.xml. Build and install the package

Step #2

Content Packager Console

Step #3

Now, you will get a screen where you can upload your excel file (.xlsx) with the user details. After you click on the "Upload" button, your package will be created in the AEM.

The excel file should look like this. 
Sample excel file content
As you can see, you can have as many as filters as you want.


For this project, we have overlayed the path /libs/cq/core/content/nav/tools into /apps/ContentPackager/cq/core/content/nav/tools. Since the overlayed path is not directly in /apps but in /apps/ContentPackager, we have to change the sling resource resolver setting in the system. 

We can do this by navigating to the ./system/console/configMgr and search for Apache Sling Resource Resolver Factory and change the Resource Search path from /apps to /apps/ContentPackager and save.

Apache Sling Resource Resolver Factory
However, if you do not wish to change the default configuration, you just have to move /apps/ContentPackager/cq to /apps/cq in crx/de.


The Content Packager utility enables you to just upload an excel file with the details of the filter and your work is done.

If you wish to see the complete code of this project and contribute towards the same with your suggestions and code, then you can find it on my GitHub.

I hope this will help you in your projects and speed up your development.

I would love to hear your thoughts on this post and would like to have suggestions from you to make this post better. 

Feel free to befriend me on Facebook, Twitter or Linked In or say Hi by email.

Happy Learning 😊


  1. ArgilDX launched a bunch of tools in Jan 19 that includes this feature at

  2. ArgilDX has a similar tool they launched way back in January this year at

  3. Nice utility! Will help me in importing paths for my site.

    1. Thanks a lot for your feedback. I am glad that it is useful for you.


Post a Comment

Popular posts from this blog

Day 00: AEM Developer Series

Hello everyone! Welcome to this AEM development series. We can all see the revolution of Digital Marketing today. Companies are dying to be a part of it and they have made this a war for the Digital Marketing tools.
Adobe is way ahead in this war and has gained a lot of market capture. They are leaders in the Digital Marketing platforms since 2014-15. One of the flagship product in Adobe's Digital Marketing suite is Adobe Experience Manager (AEM).
Since AEM is in huge demand, the people who know how to develop on AEM are also in huge demand. But developing on AEM is not easy as it is made up of various open-source technologies such as Apache Felix (OSGi), Apache Sling, Apache Oak and Adobe's own technologies like Granite, HTL etc. Learning all these technologies in conjunction can sometimes become confusing and frustrating 😫.
When I first started learning AEM in 2016, I was dumbfounded to see there is so much going on under the hood. I then spent months to gather all the res…

Day 05: Working with Sling Servlets in AEM

Day 03: Setting up AEM Development Environment