AEM如何更新Apache POI库的OSGi Bundle Wrapper中的POI版本?



在AEM中,有一个名为"OSGi bundle Wrapper For The Apache POI library"的包。

我想更新该bundle的POI版本以使用POI 5.2.3和AEM 6.3。

在这个包中有什么方法可以轻松更新POI版本吗?

谢谢。

Apache POI提供了一个模块来构建一体化OSGi包,参见https://github.com/apache/poi/tree/trunk/osgi

它可以替代OOB POI包,或者您可以在它的基础上构建自己的POI包,将POI代码放在内部类路径中。

在你的自定义核心包pom中,你可以为你需要的poi版本指定嵌入依赖。这样你的包将从嵌入的jar中引用poi版本,而不是由AEM容器提供。

你试过使用maven-bundle-plugin -

标签吗?
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version></version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Bundle-Name>${bundle.name}</Bundle-Name>
<Export-Package>${bundle.namespace}</Export-Package>
<Bundle-Activator>Activator.class</Bundle-Activator>
<Embed-Dependency>*;scope=!provided|test;groupId=!org.mybundle.test</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Import-Package>*;resolution:=optional</Import-Package>
</instructions>
</configuration>
</plugin>

你可以包含所有的依赖关系,也可以配置不包含特定的依赖关系。scope属性允许您根据依赖jar的包含范围来配置要包含哪些依赖jar。你不应该包含只有在编译和测试时才需要的依赖项。

https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/how-to-embed-dependent-jar/m-p/225793

最新更新