如何配置一個AEM/CQ5內容包的Maven的POM這樣的包中嵌入不同版本的同一OSGI的捆綁?
龍版本:
我建立一個內容包AEM(CQ5)。此內容包嵌入項目所需的直接和間接osgi依賴項。
我有一個包(我們稱之爲BundleX),因爲在特定版本的Google Guava上導入未解決的包導致內容包部署後仍未激活。 Guava是我嵌入項目的osgi依賴項的一部分。問題是,不同的捆綁包依賴於不同版本的番石榴。
所以我必須:
項目內容包:
- MyBundle:
- 取決於番石榴:15.0(我需要這個版本的一些功能)
- BundleX
- 取決於番石榴:r06(r06 < 15.0。我沒有在這束控制)
當我製作的內容包,我想嵌入這兩個番石榴版本。正如我們所知,OSGi支持同時部署多個版本的軟件包。
直到現在,我AEM內容包POM的配置,我有:
<plugin>
<groupId>com.day.jcr.vault</groupId>
<artifactId>content-package-maven-plugin</artifactId>
<configuration>
<embeddeds combine.children="append">
<embedded>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<target>${cq.slingUrlSuffix}</target>
</embedded>
...
</embeddeds>
...
</configuration>
...
</plugin>
被行家,當然確定的嵌入式依賴的版本是本次Maven項目獨特。
所以,綜上所述,要解決的問題,我應該:
嵌入番石榴的多個版本在OSGi容器。我看到的唯一解決方案是創建另一個人造內容包pom,只是爲了上傳其他Guava依賴項。但是,我希望我的主包含有所有嵌入的osgi依賴關係,所以它還沒有達到最佳狀態。
覆蓋bundle2從r06到15.0的依賴版本,所以我只需要在我的容器中使用Guava 15.0。由於我沒有對這個包的控制,所以我應該從外部覆蓋它,但我不知道是否有可能做到這一點。
在此之前,非常感謝您的幫助!該AEM罩下使用