Expand my Community achievements bar.

[AEM 6.5] Project archetype and maven dependencies that are embedded

Avatar

Level 2

Hi, I am working on a project that was created recently using the AEM 6.5 archetype base project for best practices LINK and we have run into a few scenarios where we have added a dependency, then we code/build/deploy and the bundle will not start because it cannot import a needed package. I guess it is expecting to find the package exported from some other OSGi bundle.

We solve this by adding the needed packages to the bnd-maven-plugin config under "-conditionalpackage" LINK

Unfortunately, sometimes this leads us down a "rabbit hole" where we have to add a lot of packages, and end up pulling in tons of dependencies just so we can use like one class.

  1. Are we doing this the correct/ideal way?
  2. Is this maintainable? What if we keep doing this for years and end up with 50 packages and a 500mb+ bundle size

Thanks.

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

6.5
4 Replies

Avatar

Level 6

@shea8511 : Did you try to install the service package on your AEM instance? If not then try to install the aem-service-pkg-6.5.4.zip service package.

 

Note -  Once you setup the AEM instance just install the service package first then try to install the other packages(code package, conf package, content package, user packages and others)

kchaurasiya_0-1624423007595.png

 

Thank You.

Avatar

Level 2

We already have the service pack installed. I am not referring to dependencies provided by this. My situation is when I add maven dependencies, perhaps ones I have created myself, to the project.

Avatar

Employee Advisor

@shea8511 Are these all external dependencies and not provided by AEM? You can check each of these dependencies if they are already provided in /system/console/depfinder if you find an existing bundle, note the version and use this same version in your pom.xml dependencies section also add the scope as provided. This way you can reduce a lot of exports.