gpt4 book ai didi

java - 如何从 OSGi 组件中的第三方 jar 文件导入类

转载 作者:行者123 更新时间:2023-12-04 21:27:12 24 4
gpt4 key购买 nike

我正在使用 https://eclipse.adobe.com/aem/dev-tools/创建一个项目。创建后,我在 Eclipse 中具有以下结构:

enter image description here

我希望能够在我的组件中使用 GoogleMaps API。所以我在 hometest.core/pom.xml 中添加了它的依赖项

<dependency>
<groupId>com.google.maps</groupId>
<artifactId>google-maps-services</artifactId>
<version>0.1.7</version>
<scope>compile</scope>
</dependency>

我还将所有内容添加到 _exportcontentshometest.core/pom.xml
        <plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<Embed-Directory>OSGI-INF/lib</Embed-Directory>
<_exportcontents>
*
</_exportcontents>
</instructions>
</configuration>
</plugin>

然后我导入 com.google.maps.model.GeocodingResult进入 HelloServiceProxy.java如下所示:

enter image description here

我使用 mvn clean install -PautoInstallPackage 将包安装到 aem 的本地实例

但是,当我尝试将组件添加到页面时,我收到以下错误:

java.lang.Error: Unresolved compilation problem: Only a type can be imported. com.google.maps.model.GeocodingResult resolves to a package



以下是错误截图:

enter image description here

更新 1

我从另一个全新的 AEM 项目开始,做了以下事情:
  • 在 core/pom.xml 中为 maven-bundle-plugin 添加了配置设置像这样
        <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <extensions>true</extensions>
    <configuration>
    <instructions>
    <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
    <Embed-Directory>OSGI-INF/lib</Embed-Directory>
    <_exportcontents>
    *
    </_exportcontents>
    </instructions>
    </configuration>
    </plugin>
  • 像这样添加了谷歌地图依赖:
    <dependency>
    <groupId>com.google.maps</groupId>
    <artifactId>google-maps-services</artifactId>
    <version>0.1.7</version>
    <scope>compile</scope>
    </dependency>
  • 用这个 mvn clean install -PautoInstallPackage 部署

  • 当我尝试向页面添加组件时出现错误:
    java.lang.Error: Unresolved compilation problems: 
    Only a type can be imported. com.google.maps.model.GeocodingResult resolves to a package
    Only a type can be imported. org.demo.anothertest.core.HelloService resolves to a package
    HelloService cannot be resolved to a type
    HelloService cannot be resolved to a type

    最佳答案

    该错误表明来自 google-maps-services 的类hometest.core 无法使用捆绑包捆。很可能此时嵌入捆绑包不起作用。

    您可以尝试部署一个单独的捆绑包,其中嵌入了 google-maps-services看看这是否有效?

    关于java - 如何从 OSGi 组件中的第三方 jar 文件导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31395974/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com