当前位置: 首页 > 知识库问答 >
问题:

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

仲法
2023-03-14

我从其他团队收到了一个jar文件,需要在AEM中使用。我不能在AEM中直接使用jar,所以我在链接的帮助下将jar转换为捆绑包。”https://helpx.adobe.com/experience-manager/kb/ConvertAJarIntoOsgiBundle.html“,现在我的bundle已经准备好,并通过felix控制台上传到AEM中。bundle处于活动状态。现在我需要使用bundle中的classe到我的java类中。如何在java类中使用该bundle。我需要在POM.xml中添加该bundle吗?如果需要,那么我如何将该bundle使用到POM.xml中,以便我的代码能够编译

共有2个答案

惠野
2023-03-14

您可以将lib放入src/main/jcr_root/apps/your_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>
赵珂
2023-03-14

现在我的包已经准备好,并通过felix控制台上传到AEM

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

正如在另一个响应中所说,您应该将您的包放在/apps文件夹下方名为“安装”的文件夹中。

我的建议是使用用于生成AEM注释的Maven Content Package插件将您的包嵌入到您的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>

另外,不要忘记添加/apps/示例/安装到您的filter.xml.

有关内容包插件的更多信息

 类似资料:
  • 本文向大家介绍如何在 Vue.js 中使用第三方js库,包括了如何在 Vue.js 中使用第三方js库的使用技巧和注意事项,需要的朋友参考一下 在诸多 Vue.js 应用中, Lodash, Moment, Axios, Async等都是一些非常有用的 JavaScript 库. 但随着项目越来越复杂, 可能会采取组件化和模块化的方式来组织代码, 还可能要使应用支持不同环境下的服务端渲染. 除非你

  • 我已经下载了代数鸟,我想使用这个库在Scala解释器中试用一些东西。我如何实现这一点?

  • 问题内容: 我正在开发我的第一个Java应用程序,它实际上需要一个3rd party软件包,但现在我迷失了如何实际使用它。我需要的软件包来自VLCJ,因此我可以将媒体播放器嵌入GUI中。 通常,我只能导入包和类,但是使用第三方包可以吗?他们有一个.jar文件可以在他们的网站上下载,软件包是否存储在其中?如果是这样,我该如何在自己的应用程序中使用它们? 问题答案: 您只需要将第三方JAR放在项目的类

  • 问题内容: 我有一些使用第三方库的java9模块,它不是Java9模块,只是一个简单的实用jar。 但是,编译器抱怨它无法从我的实用程序中找到软件包。 我应该怎么做才能使用我的第三方库? 问题答案: 您可以将您的库用作 自动模块 。自动模块是没有模块描述符(即)的模块。 但是,您需要指定什么名称来引用自动模块?自动模块的名称是从JAR名称派生的(除非此JAR包含属性)。完整的规则很长(请参阅Jav

  • 我有一些使用第三方库的java9模块,它不是java9模块,只是一个简单的实用程序jar。 但是,编译器抱怨它找不到来自我的实用程序的包。 我应该做什么在启用使用我的第三方库?

  • 问题内容: 我想使用jQuery和其他不是React本身的第三方库。如何在我的React项目中使用它们?我读到的是调用第三方库的好地方。 不幸的是,即使我已经正确地将脚本标记链接到index.html文件中的那些库,但由于不断收到“未定义”错误,所以我无法使用这些库。 问题答案: 您有两个选择,均由一个人为设计的示例演示,其中我使用jQuery淡出了无序列表。两种方法都各有利弊,我先强调两种方法,