What's the best way to manage AEM application dependencies? | Adobe Higher Education
Skip to main content
jkpanera
Level 4
January 16, 2020
해결됨

What's the best way to manage AEM application dependencies?

  • January 16, 2020
  • 1 답변
  • 2708 조회

Hi guys!

 

I have a general question regarding AEM Dev Ops.

 

What automated tools have you used to manage AEM OSGI bundle dependencies?

 

For example, if I add a dependency in my application's pom.xml, it's scope is provided, meaning that I have to separately deploy the bundle to a running AEM instance (local, test, production).

 

I would like to make that process smooth and automated. I believe there are a number of options out there. Right now, our org uses Ansible to do package deployment, but it isn't really dependency aware and the configuration doesn't "live with" our code.

 

What have you guys used to solve this problem? What works well? What doesn't?

 

Thanks!

이 주제는 답변이 닫혔습니다.
최고의 답변: joerghoh

I guess that these are 2 different aspects:

  • Packaging the application and its dependencies
  • Deploying the packages

The deploying part is the easy one, because I would expect that you always provide a fixed set of deployment artifacts; and if the developers decide to add some more dependent libraries, these libraries should be embedded into the existing deployment artifacts. 

 

On the development side you should declare your dependencies, and if your dependencies are not already part of AEM, makes sure that they get embedded into a content-package (if that dependency is a java bundle); this content-package is called "ui.apps" ([1]). Or if that's a plain java library, you should embedd it into your bundle.

 

[1] the POM for the ui.apps package in the AEM Archetype Version 22: https://github.com/adobe/aem-project-archetype/blob/aem-project-archetype-22/src/main/archetype/ui.apps/pom.xml

 

1 답변

joerghoh
Adobe Employee
joerghohAdobe Employee답변
Adobe Employee
January 16, 2020

I guess that these are 2 different aspects:

  • Packaging the application and its dependencies
  • Deploying the packages

The deploying part is the easy one, because I would expect that you always provide a fixed set of deployment artifacts; and if the developers decide to add some more dependent libraries, these libraries should be embedded into the existing deployment artifacts. 

 

On the development side you should declare your dependencies, and if your dependencies are not already part of AEM, makes sure that they get embedded into a content-package (if that dependency is a java bundle); this content-package is called "ui.apps" ([1]). Or if that's a plain java library, you should embedd it into your bundle.

 

[1] the POM for the ui.apps package in the AEM Archetype Version 22: https://github.com/adobe/aem-project-archetype/blob/aem-project-archetype-22/src/main/archetype/ui.apps/pom.xml