如何在AEM中使用第三方JAR?

如何在AEM中使用第三方JAR?,aem,osgi-bundle,Aem,Osgi Bundle,我有一个从其他团队收到的jar文件,需要在AEM中使用。我不能在AEM中直接使用jar,所以我在链接“”的帮助下将jar转换为捆绑包,现在我的捆绑包已经准备好,并通过felix控制台上传到AEM中。Bundle处于活动状态。现在,我需要使用绑定到java类中的类。如何在java类中使用这个bunlde。是否需要在POM.xml中添加捆绑包?如果是这样的话,那么我如何将该包使用到POM.xml中,以便我的代码可以编译。您可以将lib放入src/main/jcr\u root/apps/your\u

我有一个从其他团队收到的jar文件,需要在AEM中使用。我不能在AEM中直接使用jar,所以我在链接“”的帮助下将jar转换为捆绑包,现在我的捆绑包已经准备好,并通过felix控制台上传到AEM中。Bundle处于活动状态。现在,我需要使用绑定到java类中的类。如何在java类中使用这个bunlde。是否需要在POM.xml中添加捆绑包?如果是这样的话,那么我如何将该包使用到POM.xml中,以便我的代码可以编译。

您可以将lib放入
src/main/jcr\u root/apps/your\u app/libs/install
文件夹(路径取决于您的项目结构)。现在,它将使用maven安装到AEM

为了使用提供的作用域导入必要的类,我们对绝地库进行了以下配置:

<dependency>
    <groupId>org.apache.servicemix.bundles</groupId>
    <artifactId>org.apache.servicemix.bundles.jedis</artifactId>
    <version>2.7.3_1</version>
    <scope>provided</scope>
</dependency>

org.apache.servicemix.bundles
org.apache.servicemix.bundles.jedis
2.7.3_1
假如
现在我的包已经准备好,并通过felix控制台上传到AEM

这不是一个好主意。是的,您可以从Felix控制台安装捆绑包,但AEM中的捆绑包安装最好由Sling OSGi安装程序管理,该安装程序可以扫描JCR存储库中的捆绑包

正如在另一个回复中所说的,您应该将包放在
/apps
文件夹下名为“install”的文件夹中

我的建议是使用用于生成AEM注释的Maven内容包插件,将包嵌入到AEM包中:

    <build>
    <plugins>
        <plugin>
            <groupId>com.day.jcr.vault</groupId>
            <artifactId>content-package-maven-plugin</artifactId>
            <configuration>
                <failOnMissingEmbed>true</failOnMissingEmbed>
                <filterSource>src/main/META-INF/vault/filter.xml</filterSource>
                <filters combine.self="override" />
                <embeddeds>
                    <embedded>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>org.apache.sling.models.validation-impl</artifactId>
                        <target>/apps/example/install</target>
                    </embedded>
                </embeddeds>
            </configuration>
        </plugin>
    </plugins>
</build>

com.day.jcr.vault