在 AEM 6.2 中使用 mvn aem-project-archetype 无法解析核心包 - javax.inject 无法解析

Using mvn aem-project-archetype in AEM 6.2 does not resolve the core bundle - javax.inject cannot be resolved

我正在尝试使用 mvn aem-project-archetype (https://github.com/Adobe-Marketing-Cloud/aem-project-archetype) 构建一个新项目,并且在部署时核心包显示状态为 "Installed" 但无法激活并显示错误

javax.inject, version=[0.0,1) -- Cannot be resolved

我尝试按照此处的建议添加依赖项 (https://github.com/Adobe-Marketing-Cloud/aem-project-archetype/issues/59)

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

也尝试了此处列出的所有解决方案 (http://help-forums.adobe.com/content/adobeforums/en/experience-manager-forum/adobe-experience-manager.topic.html/forum__fikl-ive_just_updatedfro.html),但没有解决。

在此感谢任何帮助。

经过一些研究,这里有一些针对上述问题的解决方案:

  1. 在 HelloWorldModel.java 中评论“@Inject”。这可能不太理想,但如果您不打算使用吊索模型,那么这会起作用。

    @Model(adaptables=Resource.class)
    public class HelloWorldModel {
    
    //@Inject
    private SlingSettingsService settings;
    
    //@Inject @Named("sling:resourceType") @Default(values="No resourceType")
    protected String resourceType;
    
  2. 如果您要使用 AEM 6.1 或更高版本,请使用 ACS's Lazybones AEM Template 而不是 Archetype 10。这是推荐用于 AEM 的模板,它更复杂且是最新的。

为版本为“0.0.0,*”的“javax.inject”在“org.apache.felix" 插件标签如下:

<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.xyz.sample_test_impl.core</Sling-Model-Packages>
        </instructions>
     </configuration>
</plugin>

尝试将您的依赖项列表与以下 official sample project 同步。事实上,它在添加

之后对我有所帮助
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
            <scope>provided</scope>
        </dependency>

一般pom.xml

        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
        </dependency>

对其child../core/pom.xml