AEM jar如何创建所有捆绑包?

时间:2017-05-23 18:57:13

标签: java jar content-management-system cq5 aem

我有这个AEM 6.2 jar,当我尝试执行这个jar时,它会创建所有必需的文件和文件夹,并在/ launchpad / felix目录下创建所有的bundle。

现在,如果我删除或重命名一个包,例如我将bundle272重命名为bundle272aaa;尝试再次执行jar,它从目录中删除了bundle bundle272。

如果我将此jar复制到其他位置并尝试执行它,我可以在/ launchpad / felix位置看到bundle272。

为什么会这样?

2 个答案:

答案 0 :(得分:1)

AEM jar(存档)包含所有这些文件。当您只是复制AEM jar并运行它时,它会将所有这些文件(包括包)提取到crx-quickstart目录中。

答案 1 :(得分:0)

我认为这是一个很好的问题。您在crx-quickstart / launchpad / felix文件夹中看到的捆绑包只是作为缓存持久化。捆绑包实际上位于安装文件夹中不同位置的crx存储库中。

Apache Sling使用JCR Installer从存储库中的不同位置安装这些软件包。这就是为什么你的osgi jar被部署到AEM的原因,如果你把它们放在像/ apps / geometrixx / install这样的安装文件夹中。

Apache Sling还提供了一个名为File installer的不同安装程序,用于存储捆绑包和安装程序。磁盘上的配置。

我猜测JCR安装程序是通过继承File Installer实现的,这就是为什么所有bundle都写入磁盘的原因,但即使你重命名或删除它们也会恢复到磁盘上。我写这个是猜测因为我无法查看源代码并在此时验证,但这是最有可能发生在幕后的事情。