2

是否有任何其他解决方法可以解决javax.inject,version=[0.0,1) -- Cannot be resolvedOSGI 捆绑包中的问题

我已经尝试了以下论坛中提供的所有方法。但我的捆绑包仍然没有解决。

我正在使用 AEM 6.2 + Java 版本:1.8.0_121 + Apache Maven 3.3.9 和 archetypeVersion=10

我的代码可以在我的GDrive上找到

http://help-forums.adobe.com/content/adobeforums/en/experience-manager-forum/adobe-experience-manager.topic.html/forum__fikl-ive_just_updatedfro.html

Javax 注入

4

2 回答 2

6

在核心 pom.xml 文件中,为“ javax.inject ”添加Import-Package标记,在“ org.apache.felix ”插件标记中添加“ version=0.0.0,* ”,如下所示[在 AEM 6.2 上测试完美运行]

<plugin>
  <groupId>org.apache.felix</groupId>
  <artifactId>maven-bundle-plugin</artifactId>
  <extensions>true</extensions>
  <configuration>
    <instructions>
      <!--
       <Embed-Dependency>
          artifactId1,artifactId2;inline=true
       </Embed-Dependency>
      -->
      <!-- Import any version of javax.inject, to allow running on multiple versions of AEM -->
      <Import-Package>javax.inject;version=0.0.0,*</Import-Package>

      <Sling-Model-Packages>
        com.next.sample_test_impl.core
      </Sling-Model-Packages>
    </instructions>
  </configuration>
</plugin>
于 2017-05-31T07:01:23.577 回答
3

移除以下依赖

<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-atinject_1.0_spec</artifactId>
<version>1.0</version>
<scope>provided</scope>

来自父子(捆绑)pom.xml,因为 javax.inject.inject 也是由这个依赖项导出的。所以你的代码正在考虑这个依赖项,但不是

     <dependency>
           <groupId>org.apache.geronimo.specs</groupId>
           <artifactId>geronimo-atinject_1.0_spec</artifactId>
           <version>1.0</version>
           <scope>provided</scope>
       </dependency>

因此,如果您删除 sling.model.api 依赖项,它将采用正确的依赖项。 在此处输入图像描述

于 2017-04-10T04:44:59.913 回答