


When creating an AEM project with new ArcheTypes(version > 22) for AEM 6.5 we see the pom files are getting generated with org.apache.jackrabbit:filevault-package-maven-plugin and biz.aQute.bnd:bnd-maven-plugin.
If we try to remove org.apache.jackrabbit:filevault-package-maven-plugin from file the build fails.
Is it recommended to use org.apache.jackrabbit:filevault-package-maven-plugin instead of com.day.jcr.vault:content-package-maven-plugin for newer archetypes based project compatible with AEM 6.5 version ?
Similarly is biz.aQute.bnd:bnd-maven-plugin recommended to be used instead of org.apache.felix:maven-bundle-plugin for newer archetypes based project compatible with AEM 6.5 version ?
Views
Replies
Sign in to like this content
Total Likes
Technically both the filevault-package-maven-plugin and the content-package-maven-plugin can largely the same work, but the Jackrabbit plugin is currently maintained and developed, but the development of the content-package-maven-plugin got stalled for quite some time now. I would recommend to stick to the filevault-package-maven-plugin, because only that is supported on AEM cloud service.
And more or less the same with the bnd-maven-plugin. The maven-bundle-plugin was only a shell around bnd for quite some time, but since bnd provides a maven plugin as well, it's not longer needed.
Technically both the filevault-package-maven-plugin and the content-package-maven-plugin can largely the same work, but the Jackrabbit plugin is currently maintained and developed, but the development of the content-package-maven-plugin got stalled for quite some time now. I would recommend to stick to the filevault-package-maven-plugin, because only that is supported on AEM cloud service.
And more or less the same with the bnd-maven-plugin. The maven-bundle-plugin was only a shell around bnd for quite some time, but since bnd provides a maven plugin as well, it's not longer needed.
Views
Replies
Sign in to like this content
Total Likes
Views
Replies
Sign in to like this content
Total Likes
Mainly the maven-bundle-plugin needs to be replaced with bnd-maven-plugin.
You do this like this:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven.enforcer.version}</version>
<executions>
<execution>
<id>ban-maven-scr-plugin</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedPlugins>
<excludes>
<exclude>org.apache.felix:maven-scr-plugin</exclude>
</excludes>
<message>Felix SCR annotations and the maven-scr-plugin are no longer supported -
please migrate to OSGi
annotations or stick with Sling Parent 29.
</message>
</bannedPlugins>
</rules>
</configuration>
</execution>
<execution>
<id>ban-maven-bundle-plugin</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedPlugins>
<excludes>
<exclude>org.apache.felix:maven-bundle-plugin</exclude>
</excludes>
<message>The maven-bundle-plugin is no longer supported - please migrate to
bnd-maven-plugin or stick
with Sling Parent 34.
</message>
</bannedPlugins>
</rules>
</configuration>
</execution>
<execution>
<id>enforce-java</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<!-- Require Java 8 or higher for building (as bnd since version 4.0 only supports Java 8, https://github.com/bndtools/bnd/wiki/Changes-in-4.0.0) -->
<requireJavaVersion>
<message>
Apache Sling must be compiled with Java 8 or higher as the bnd-maven-plugin
requires that.
</message>
<version>1.8.0</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
<version>${bnd.version}</version>
<executions>
<execution>
<id>bnd-process</id>
<goals>
<goal>bnd-process</goal>
</goals>
<configuration>
<bnd><![CDATA[
Bundle-SymbolicName: design.aem.aemdesign-aem-services
Bundle-Category: design.aem
Bundle-Description: ${project.description}
Bundle-DocURL: https://aem.design
Bundle-License: Apache License, Version 2.0
Bundle-Vendor: AEM.Design
Embed-Transitive: true
Sling-Model-Packages: design.aem
Export-Service: design.aem.workflow.process.*
Export-Package: design.aem.*,\
org.jsoup,\
org.jsoup.examples,\
org.jsoup.helper,\
org.jsoup.nodes,\
org.jsoup.parser,\
org.jsoup.safety,\
org.jsoup.select,\
org.apache.commons.jexl3.*,\
org.apache.sling.installer.api.info,\
org.apache.sling.installer.api.tasks,\
com.adobe.acs.commons.fam,\
com.adobe.acs.commons.util,\
com.adobe.acs.commons.workflow,\
com.adobe.acs.commons.util.visitors,\
com.luciad.imageio.webp.*,\
com.github.jai-imageio.*,\
com.github.jaiimageio.*
-includeresource:\
lib/jsoup-${jsoup.version}.jar=jsoup-${jsoup.version}.jar;lib:=true,\
lib/gson-${gson.version}.jar=gson-${gson.version}.jar;lib:=true,\
lib/webp-imageio-sejda-${webp.version}.jar=webp-imageio-sejda-${webp.version}.jar;lib:=true,\
lib/jai-imageio-core-${imageio.version}.jar=jai-imageio-core-${imageio.version}.jar;lib:=true
# export all versioned packages by default
-exportcontents: design.aem.*,\
org.jsoup,\
org.jsoup.examples,\
org.jsoup.helper,\
org.jsoup.nodes,\
org.jsoup.parser,\
org.jsoup.safety,\
org.jsoup.select,\
org.apache.commons.jexl3.*,\
org.apache.sling.installer.api.info,\
org.apache.sling.installer.api.tasks,\
com.adobe.acs.commons.fam,\
com.adobe.acs.commons.util,\
com.adobe.acs.commons.workflow,\
com.adobe.acs.commons.util.visitors,\
com.luciad.imageio.webp.*,\
com.github.jai-imageio.*,\
com.github.jaiimageio.*
#-sources: false
]]></bnd>
</configuration>
</execution>
</executions>
</plugin>