在 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),但没有解决。
在此感谢任何帮助。
经过一些研究,这里有一些针对上述问题的解决方案:
在 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;
如果您要使用 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
我正在尝试使用 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),但没有解决。
在此感谢任何帮助。
经过一些研究,这里有一些针对上述问题的解决方案:
在 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;
如果您要使用 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