<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.dynamic-include</artifactId>
<version>3.1.2</version>
</dependency>
Apache Sling :: Apache Sling Dynamic Include
I found another blog article here too, but it does not work as well, Caching Common or Shared Content in AEM Using Sling Dynamic Include | by Sreenivas B | Adobe Tech Bl...
Solved! Go to Solution.
You can do this easily (after building and deploying code into your AEM local, you should be able to find the jar file existing under /apps/my-site/install:
1. Include the SDI as a dependency in the ui.apps pom.xml
<!-- Sling dynamic include -->
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.dynamic-include</artifactId>
</dependency>
2. Embed the SDI as a package for deployment in ui.apps pom.xml
<embedded>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.dynamic-include</artifactId>
<target>/apps/my-site/install</target>
</embedded>
3. Include the SDI as a dependency in the parent pom.xml
<!-- Sling dynamic include --> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.dynamic-include</artifactId> <version>3.1.2</version> </dependency>
Hi @AEMWizard
If It is third-party library, recommended to embed it providing an instruction to the maven-bundle-plugin, for more details kindly follow my blog here https://www.techinnovia.com/package-import-and-export/ demonstrated practical demo video at the end.
1. Add dependency to the pom.xml
<dependency>
<groupId>com.thirdparty</groupId>
<artifactId>my-bundle</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/../repo/thirdparty.jar</systemPath>
</dependency>
if you have the bundle in your system , you can simply give the path to that bundle using the scope 'system'. Here, the folder 'repo' is besides the bundle folder in the project structure.
2. In your maven bundle plugin configuration in pom.xml, add the jar to the embed-dependency option like that:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<configuration>
<instructions>
<Embed-Dependency>*;scope=system</Embed-Dependency>
</instructions>
</configuration>
</plugin>
3. Build the maven project
4. Go to the target folder where you built bundle/jar is present, extract the jar, you will notice that the thirdparty jar is embedded in the bundle jar. I have attached the screenshot for your reference that shows the content of the extracted bundle containing the thirdparty jar.
Hope that helps you!
Regards,
Santosh
sorry sir, but I am looking for a way to package
org.apache.sling.dynamic-include
this project into my bundle.
<systemPath>${project.basedir}/../repo/thirdparty.jar</systemPath>
will be https://dlcdn.apache.org/sling/org.apache.sling.dynamic-include-3.3.0.jar
You can do this easily (after building and deploying code into your AEM local, you should be able to find the jar file existing under /apps/my-site/install:
1. Include the SDI as a dependency in the ui.apps pom.xml
<!-- Sling dynamic include -->
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.dynamic-include</artifactId>
</dependency>
2. Embed the SDI as a package for deployment in ui.apps pom.xml
<embedded>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.dynamic-include</artifactId>
<target>/apps/my-site/install</target>
</embedded>
3. Include the SDI as a dependency in the parent pom.xml
<!-- Sling dynamic include --> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.dynamic-include</artifactId> <version>3.1.2</version> </dependency>
How can you do your second step?
2. Embed the SDI as a package for deployment in ui.apps pom.xml
<embedded>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.dynamic-include</artifactId>
<target>/apps/my-site/install</target>
</embedded>
I´m trying but it shows me this error:
[ERROR] ValidationViolation: "jackrabbit-packagetype: Package of type 'APPLICATION' is not supposed to contain OSGi bundles or configurations!", filePath=jcr_root\apps\catalog\install\org.apache.sling.dynamic-include-3.3.0.jar, nodePath=/apps/catalog/install/org.apache.sling.dynamic-include-3.3.0.jar
I´m doing it in the ui.apps pom in the following pluging, am I wrong?
<plugin>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>filevault-package-maven-plugin</artifactId>
<configuration>
<properties>
<cloudManagerTarget>none</cloudManagerTarget>
</properties>
<group>com.hdr.catalog</group>
<name>catalog.ui.apps</name>
<packageType>application</packageType>
<repositoryStructurePackages>
<repositoryStructurePackage>
<groupId>com.hdr.catalog</groupId>
<artifactId>catalog.ui.apps.structure</artifactId>
</repositoryStructurePackage>
</repositoryStructurePackages>
<dependencies>
</dependencies>
<embeddeds>
<embedded>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.dynamic-include</artifactId>
<target>/apps/catalog/install</target>
</embedded>
</embeddeds>
</configuration>
</plugin>
Thank you all for your help!
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies